我正在尝试使用 Redis、Laravel Echo、Laravel Echo Server 和 socket.io 广播一个简单的事件。我已经在客户端准备好了一切。该消息确实正在广播,并且 laravel echo 服务器正在接收它。
在 chat.dev/ 我有客户加入。在 chat.dev/new 我有正在广播的事件。
[5:14:31 PM] - HvEq_a12YnQFJGFiAAAE joined channel: chat
Channel: chat
Event: message.created
CHANNEL chat
所以看起来一切正常。在客户端,我包含了 socket.io,它正在找到它。
<script src="//{{ Request::getHost() }}:6001/socket.io/socket.io.js"></script>
然后我跑
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 没有捕捉到它。
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 问题链接。