3

我正在运行 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"
}

广播频道(routes/channels.php)

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

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

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

4

2 回答 2

7

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

于 2020-07-01T06:55:16.317 回答
5

只需将其留给未来的用户,他们可能会面临接收事件的问题

.listenForWhisper(..)

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

于 2020-05-23T10:32:49.360 回答