Laravel Echo 和 Whisper,listenForWhisper 不起作用

The*_*ord 4 echo laravel whisper

我正在运行 Echo 服务器和 Beyondcode (Pusher)。状态通道运行良好,我为其构建的消息传递也有效。现在我正在尝试让耳语也适用于打字状态,但没有运气。

发送悄悄话:

let channel = Echo.join('chat')

setTimeout( () => {
    channel.whisper('typing', {
    user: Laravel.user.id,
    typing: true
    })
}, 300)
Run Code Online (Sandbox Code Playgroud)

听耳语:

Echo.join('chat')
.listenForWhisper('typing', (e) => {
    console.log(e)
});
Run Code Online (Sandbox Code Playgroud)

在我的回显服务器日志中,当我输入消息时:

testapp: connection id 332742863.966987392 received message: 
{
    "event":"client-typing",
    "data":{
        "user":2,
        "typing":true
    },
    "channel":"presence-chat"
}
Run Code Online (Sandbox Code Playgroud)

广播频道(routes/channels.php)

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

连接 ID 332742863.966987392 是第二个用户(不是我输入消息的那个用户)。

但浏览器控制台中什么也没有出现。

Aks*_*kar 10

只是将其留在这里供将来可能面临接收事件问题的用户使用

.listenForWhisper(..)
Run Code Online (Sandbox Code Playgroud)

如果您使用laravel-websockets,请确保启用 'enable_client_messages'


小智 10

我知道这已经很旧了,但我的问题是我没有从推送应用程序设置中启用名为“启用客户端事件”的选项。