我无法订阅我的推播者专用频道

时间:2019-09-08 06:43:23

标签: laravel vue.js websocket pusher pusher-js

我正在尝试与laravel和vue建立实时聊天,而我正在使用pusher.js

我可以收听公共事件,但不能收听私人频道事件。

当一条消息被保存到我的数据库中时,我从laravel调度一个事件。

 public function broadcastOn()
    {
        $room= Room::where('id', $this->message->room_id)->first();
        return new PrivateChannel('message-channel'.$room->id);
    }

然后,我应该订阅我的私人频道,但是我不能订阅。

{event: "pusher:connection_established", data: "{"socket_id":"1078.10518176","activity_timeout":120}"}
data: "{"socket_id":"1078.10518176","activity_timeout":120}"
event: "pusher:connection_established"

我怀疑这可能是因为我使用社交名流自定义了auth,但是登录响应似乎还可以。

 public function boot()
    {
        Broadcast::routes(['middleware' => 'auth:salon_staff']);

        require base_path('routes/channels.php');
    }

在我的广播路由中,为了进行测试,我始终返回true。

Broadcast::channel('private-message-channel{roomId}', function ($salon_staff, \App\Room $room) {


    return true;

});

这是vue的代码。

var self = this;
          var channel = pusher.subscribe('message-channel'+this.room.id);
          channel.bind('App\\Events\\MessageSaved', function(data) {


             self.msgs= [
                ...self.msgs,
                data.message
             ];


          });

有人知道为什么会这样吗?

0 个答案:

没有答案