![](/img/trans.png)
[英]Broadcasting with Laravel Echo, laravel-echo-server and socket.io won't work
[英]Broadcasting with Laravel Echo, laravel-echo-server and socket.io is not working
我已经使用自己的实现成功地使用Laravel设置了websockets,但是经过许多小时的尝试并阅读了我能找到的所有文档后,我确实需要进一步的帮助。
"laravel-echo": "^1.5.2",
"socket.io-client": "^2.2.0",
这是我的.env文件的详细信息
BROADCAST_DRIVER=redis
CACHE_DRIVER=file
QUEUE_CONNECTION=redis
SESSION_DRIVER=file
SESSION_LIFETIME=120
laravel回波-server.json
"database": "redis",
"databaseConfig": {
"redis": {},
"sqlite": {
"databasePath": "/database/laravel-echo-server.sqlite"
}
},
"devMode": true,
ExampleEvent文件
public function broadcastOn()
{
return new Channel('test-event');
}
public function broadcastWith(){
return [
'data' => 'key'
];
}
我的Bootstrap.js
window.Echo.channel('test-event')
.listen('ExampleEvent', (e) => {
console.log(e);
});
实施时
Laravel回波服务器:
[10:03:50 PM]-F07Nv9alc-Bsh3LEAAAB加入频道:测试事件[10:04:16 PM]-F07Nv9alc-Bsh3LEAAAB左侧频道:测试事件(运输关闭)频道:测试事件事件:App \\ Events \\ ExampleEvent
Redis的:
1548349380.228566 [0 127.0.0.1:53929]“ EVAL”“-将第一个作业从队列中弹出... \\ n本地作业= redis.call('lpop',KEYS [1])\\ n本地保留= false \\ n \\ nif(job〜= false)然后\\ n-增加尝试次数并将作业放在保留队列中... \\ n reserved = cjson.decode(job)\\ n reserved ['attempts'] = reserved ['attempts '] + 1 \\ n保留= cjson.encode(保留)\\ n redis.call('zadd',KEYS [2],ARGV [1],保留)\\ nend \\ n \\ n返回{job,保留}“” 2 “”队列:默认“”队列:默认:保留“” 1548349470“ 1548349380.228773 [0 lua]” lpop“”队列:默认“
该声明正在不断重复。
而且浏览器中没有输出
您需要在laravel-echo-config.json
文件中设置redis
配置,以便它知道从哪里"ask for messages"
,例如:
"databaseConfig": {
"redis": {
"host": "http://127.0.0.1"
"port": "6379"
},
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.