Laravel回声监听耳语功能不起作用

时间:2018-11-15 02:15:11

标签: vue.js pusher laravel-echo

我正在构建一个实时聊天应用程序,但是我发现listenforwhisper函数无法正常工作,但是.whisper()函数可以正常工作,pusher还收到了客户端键入事件。 enter image description here

这是我的代码:

对于耳语:

Echo.private(`messages.${this.user.id}`)
    .listen("NewMessage", (e) => {
      this.handleIncoming(e.message);
    })
    .listenForWhisper("typing", (e) => {
      if(e.name !='') {
        this.typeStatus = 'typing .........'
      }
      else {
        this.typeStatus = ''
      }
      console.log(this.typeStatus);
    });

耳语:

watch: {
    message() {
      Echo.private(`messages.${this.user.id}`)
      .whisper("typing", {
        name: this.message
      });
    }
  }

对于渠道:

Broadcast::channel('messages.{id}', function ($user, $id) {
    return (int) $user->id === (int) $id;
});

理论上,我的控制台将返回typeStatus,但控制台中什么也没有。

1 个答案:

答案 0 :(得分:0)

耳语的工作方式类似于broadcastToOthers。您现在正在尝试听取当前用户的耳语。您应该有一个房间,耳语会流到那里,并且应该有多个客户可以接收。现在,您的频道已与用户绑定在一起,没有其他人可以看到通过该频道的消息。