微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel回声不监听推送事件-Laravel 7

如何解决Laravel回声不监听推送事件-Laravel 7

我正在尝试创建信号数量的实时更新(每当用户单击按钮时,signals变量就会增加)。
为此,我创建了一个事件SignalAvailability:

class SignalAvailability implements ShouldbroadcastNow
{
use dispatchable,InteractsWithSockets,SerializesModels;

public $id;

/**
 * Create a new event instance.
 *
 * @return void
 */
public function __construct(String $id)
{
    $this->id = $id;
}

/**
 * Get the channels the event should broadcast on.
 *
 * @return \Illuminate\broadcasting\Channel|array
 */
public function broadcastOn()
{
    return new Channel('signal-availability.1');
}
public function broadcastAs()
{
    return 'AvailabilitySignaled';
}
public function broadcastWith() {
    return [
        'id' => $this->id
    ];
}

此事件在PHP控制器内触发:

public function attachUsers($orderId) {
    $user = auth()->user();
    $user->orders()->attach($orderId);
    event(new SignalAvailability($orderId));
    return response()->json($user->orders()->get());
}

这就是我定义信号变量的方式:

data: {
        order: {!! $order->toJson() !!},user: {!! Auth::check() ? Auth::user()->toJson() : null !!},providers: {!! $order->users()->get() !!},signals: {!! count($order->users()->get()) !!},signal: true
    }

这就是我尝试在刀片中监听事件的代码

listen: function() {
          console.log('Listen executed');
          Echo.channel('signal-availability.1')
              .listen('AvailabilitySignaled',(id) => {
                this.signals += 1;
              });
        }

一旦单击一个按钮,就会执行监听功能,以确保它正在监听频道中广播的事件。

但是我没有得到任何结果,甚至在我的浏览器控制台中也没有任何错误。 在pusher调试控制台中,我可以看到与频道订阅有关的websocket连接事件。 而且,我的.env文件中的pusher部分已使用正确的凭据正确设置,并已在broADCAST_DRIVER中的pusher进行了正确设置,在我的bootstrap.js文件中,我未注释Laravel回声代码,并已填充pusher的凭据。 有什么问题的主意吗? 谢谢您在advancne!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。