繁体   English   中英

Laravel Echo 和 Whisper,listenForWhisper 不起作用

[英]Laravel Echo and Whisper, listenForWhisper not work

我正在运行 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 是第二个用户(不是我输入消息的那个用户)。

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

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

只是把这个留在这里给未来的用户,他们可能会遇到接收事件的问题

.listenForWhisper(..)

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

在将listenForWhisper添加到created()方法(创建Vue应用程序)后,该问题得以解决。

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

我正在运行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是第二个用户(不是我键入消息的那个用户)。

但是浏览器控制台中没有任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM