1

我正在使用 laravel 5.4 和 pusher 进行事件广播。我创建了一个私人频道“聊天室”。

Echo.join('chatroom')  /// Work Well 
   .listen('MessagePosted', (e) => {
           this.messages.push({
           body: e.message.body
       });
});

但这不适用于 Channel 和 Private ...

 Echo.channel('chatroom')   OR 
 Echo.private('chatroom')   //// Not Working 

收到以下错误在此处输入图像描述

4

1 回答 1

0

您需要将其放入mounted()方法中。因为错误回答.here不是函数

  mounted(){
    Echo.private('chat')
    .listen('ChatEvent', (e) => {
      console.log(e);
    });

    //Make function for joining and leaving for any users
    Echo.join('chat')
    .here((users) => {
        console.log(users)
    })
    .joining((user) => {
        console.log(user.name)
    })
    .leaving((user) => {
        console.log(user.name)
    });

  }

如果您进行私人聊天,那么在 中routes/channels.php,您必须定义/注册一个chat这样命名的频道 -

Broadcast::channel('chat', function($user){
  return ['name' => $user->name]; //Return data as your need
});

希望,它会帮助某人。

于 2018-02-21T07:17:28.460 回答