首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel Echo接收帧但不触发

Laravel Echo接收帧但不触发
EN

Stack Overflow用户
提问于 2017-07-19 09:24:31
回答 1查看 425关注 0票数 1

我正在尝试使用Redis、Laravel Echo、Laravel Echo Server和socket.io广播一个简单的事件。我已经把客户端的一切都准备好了。这条消息确实正在广播,laravel echo服务器正在接收它。

在have .dev/I上有客户端加入。在have .dev/new上,我有正在广播的事件。

代码语言:javascript
复制
[5:14:31 PM] - HvEq_a12YnQFJGFiAAAE joined channel: chat
Channel: chat
Event: message.created
CHANNEL chat

所以看起来一切都很正常。在客户端,我包含了socket.io,它正在找到它。

代码语言:javascript
复制
<script src="//{{ Request::getHost() }}:6001/socket.io/socket.io.js"></script>

然后我就跑

代码语言:javascript
复制
import Echo from 'laravel-echo'

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: window.location.hostname + ':6001'
});


window.Echo.channel('chat')
    .listen('.message.created', (e) => {
        console.log("Got message");
    });

但是没有任何东西被记录到控制台。为什么?

经过多次修改,现在可以接收到帧了。但是,.listen并没有捕捉到它。

代码语言:javascript
复制
42["message.created", "chat", {,…}]
0
:
"message.created"
1
:
"chat"
2
:
{,…}
message
:
{id: 23, body: "Modified", created_at: "2017-07-19 01:11:18", updated_at: "2017-07-19 01:11:18"}
socket
:
null

这是各自的Reddit和GitHub问题链接。

Reddit GitHub

EN

回答 1

Stack Overflow用户

发布于 2017-07-19 09:45:24

我也有类似的问题,我创建了一个单独的自定义事件,在广播函数中我这样做了:返回新的频道(‘test_channel’);而不是在laravel 5.4中的“私有频道”,另外,请检查你的.env是否定义了BROADCAST_DRIVER。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45179532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档