【发布时间】:2019-01-24 17:08:22
【问题描述】:
我已经通过自己的实现成功地使用 Laravel 设置了 websocket。但是,经过数小时的尝试和阅读我能找到的每一份文档后,我确实需要进一步的帮助。
"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-echo-server.json
"database": "redis",
"databaseConfig": {
"redis": {},
"sqlite": {
"databasePath": "/database/laravel-echo-server.sqlite"
}
},
"devMode": true,
示例事件文件
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-echo-服务器:
[10:03:50 PM] - F07Nv9alc-Bsh3LEAAAB 加入频道:test-event [10:04:16 PM] - F07Nv9alc-Bsh3LEAAAB 左声道:测试事件 (transport close) Channel: test-event Event: App\Events\ExampleEvent
Redis:
1548349380.228566 [0 127.0.0.1:53929] "EVAL" "-- 从队列中弹出第一个作业...\nlocal job = redis.call('lpop', KEYS[1])\nlocal reserved = false\n\nif(job ~= false) then\n -- 增加 尝试计数并将作业放置在保留队列中...\n 保留 = cjson.decode(job)\n reserved['attempts'] = reserved['attempts'] + 1\n 保留 = cjson.encode(保留)\n redis.call('zadd', KEYS[2], ARGV[1], 保留)\nend\n\nreturn {job, reserved}" "2" “队列:默认” “队列:默认:保留” “1548349470” 1548349380.228773 [0 lua] "lpop" "queues:default"
此语句不断重复..
而且浏览器没有输出
【问题讨论】: