Laravel Echo и Whisper, слушай ForWisis не работает - PullRequest
0 голосов
/ 25 декабря 2018

Я использую сервер Echo и Beyondcode (Pusher).Каналы присутствия работают отлично, и сообщения, которые я построил для этого, работают.Теперь я пытаюсь заставить шепот работать и для статуса ввода, но безуспешно.

Отправка шепота:

let channel = Echo.join('chat')

setTimeout( () => {
    channel.whisper('typing', {
    user: Laravel.user.id,
    typing: true
    })
}, 300)

Слушание шепота:

Echo.join('chat')
.listenForWhisper('typing', (e) => {
    console.log(e)
});

В моем журнале эхо-сервера, когда я печатаю сообщение:

testapp: connection id 332742863.966987392 received message: 
{
    "event":"client-typing",
    "data":{
        "user":2,
        "typing":true
    },
    "channel":"presence-chat"
}

Широковещательный канал (routs / channel.php)

Broadcast::channel('chat', function ($user) {
    return [
        'id' => $user->id,
        'name' => $user->name
    ];
});

Идентификатор соединения 332742863.966987392 - второй пользователь (неодин из которых я набрал сообщение).

Но в консоли браузера ничего не появляется.

1 Ответ

0 голосов
/ 26 декабря 2018

Проблема была решена после добавления метода listenForWhisper к create () (создание приложения Vue)

const app = new Vue({
    el: '#app',
    created() {
        Echo.join('chat').listenForWhisper('typing', ({id, name}) => {
            //....
        }
    }
}
...