2017-07-19 9 views
1

私はRedis、Laravel Echo、Laravel Echo Server、およびsocket.ioを使用して簡単なイベントをブロードキャストしようとしています。 私はクライアント側ですべてを手に入れました。メッセージは実際にブロードキャストされており、laravelエコーサーバーがそれに取り組んでいます。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の "private channel"ではなく、.envにBROADCAST_DRIVERが定義されているかどうかを確認してください。

+0

プライベートチャンネルではなく、通常のチャンネルを返送しています。また、ブロードキャストドライバを有効にしています。フレームのようにクライアント側に到着しているが、何らかの理由でLaravel Echoはそれを拾っていない! –

+0

これを見て、私はこれがあなたを助けると思う: – Deepesh

+0

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

関連する問題