2017-07-19 69 views
1

我試圖使用Redis,Laravel Echo,Laravel Echo Server和socket.io廣播簡單事件。 我已經在客戶端提供了一切。這個消息確實在播出,而且laravel echo服務器正在接受它。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問題鏈接。

Reddit GitHub

+0

在任何人說什麼之前,是的,我嘗試過「message.created」沒有最初的點。 Nothing –

回答

0

我有類似的問題,我創建了一個單獨的自定義事件和廣播功能我這樣做:返回新頻道(「test_channel」);而不是laravel 5.4中的「私人頻道」,也請檢查您的.env是否有BROADCAST_DRIVER定義。

+0

我正在返回一個常規頻道,而不是一個私人頻道。另外我確實啓用了我的廣播驅動程序。就像幀被抵達客戶端一樣,但無論出於何種原因,Laravel Echo都無法接受! –

+0

看這個,我認爲這會幫助你: – Deepesh

+0

https://youtu.be/j-2XEJCfhuw – Deepesh