我有一個事件SomeEvent.phplaravel回聲Redis的插座IO
像這樣:
<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class SomeEvent implements ShouldBroadcast
{
use InteractsWithSockets, SerializesModels;
public $data;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($array)
{
$this->data = $array;
}
/**
* Get the channels the event should broadcast on.
*
* @return Channel|array
*/
public function broadcastOn()
{
return new PrivateChannel('channel-name');
}
}
我已經列入我bootstrap.js以下,並一飲而盡編譯它
import Echo from "laravel-echo"
window.Echo = new Echo({
broadcaster: 'socket.io',
host: 'http://site.dev:6001'
});
window.Echo.private('channel-name')
.listen('SomeEvent', (e) => {
console.log(e);
});
的話,我已經安裝了tlaverdure/laravel回波服務器,這裏是我的laravel回波-server.json
{
"appKey": "[generated]",
"authHost": "http://site.dev",
"authEndpoint": "/broadcasting/auth",
"database": "redis",
"databaseConfig": {
"redis": {},
"sqlite": {
"databasePath": "/database/laravel-echo-server.sqlite"
}
},
"devMode": false,
"host": "sitei.dev",
"port": "6001",
"referrers": [],
"socketio": {},
"sslCertPath": "",
"sslKeyPath": ""
}
現在,當我火了laravel回聲服務器laravel回聲服務器啓動它開始得很好但是當我火了,像這樣
event(new SomeEvent(json_encode(['name' => 'some-name'])));
我可以看到發佈到Redis的但是沒有該事件的上述事件被loged我的客戶端控制檯:我也包括我master.blade.php
上述插座IO也恰好與通知
任何幫助,將不勝感激。謝謝你們
你能解決這個問題嗎?我有類似的問題仍然打開http://stackoverflow.com/questions/41120789/broadcasting-event-with-socket-io-and-redis-in-laravel-5-3?noredirect=1#comment69445395_41120789任何想法? –
您的主機設置中存在拼寫錯誤,不是嗎? 「sitei.dev」vs「site.dev」。這可能嗎?如果不是,你確定redis工作進程正在運行嗎? – Trip