Laravel эхо, слушайте шепот, функция не работает - PullRequest
0 голосов
/ 15 ноября 2018

Я создаю приложение для живого чата, но обнаружил, что функция 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 голосов
/ 15 ноября 2018

Шепот работает как широковещательный.Вы сейчас пытаетесь слушать шепот текущих пользователей.У вас должна быть комната, куда идет шепот, и там должно быть несколько клиентов для получения.Теперь ваш канал привязан к пользователю, и никто больше не может видеть сообщения, проходящие через этот канал.

...