Я успешно настроил веб-сокеты с Laravel с помощью собственной реализации. Но после многих часов попыток и прочтения каждого фрагмента документации, который я смог найти, мне нужна дополнительная помощь.
"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,
Пример файла события
public function broadcastOn()
{
return new Channel('test-event');
}
public function broadcastWith(){
return [
'data' => 'key'
];
}
My 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 левый канал: тестовое событие
(транспортное закрытие) Канал: test-event Событие: App \ Events \ ExampleEvent
Redis:
1548349380.228566 [0 127.0.0.1:53929] "EVAL" "- вытолкнуть первое задание из очереди ... \ nlocal job = redis.call ('lpop', KEYS [1]) \ nlocal
зарезервировано = ложно \ n \ nif (задание ~ = ложно), а затем \ n - увеличивает
количество попыток и место в зарезервированной очереди
cjson.decode (job) \ n зарезервировано ['попытки'] = зарезервировано ['попытки'] +
1 \ n зарезервировано = cjson.encode (зарезервировано) \ n redis.call ('zadd',
KEYS [2], ARGV [1], зарезервировано) \ nend \ n \ nreturn {job, зарезервировано} "" 2 "
"queues: default" "queues: default: reserved" "1548349470"
1548349380.228773 [0 lua] "lpop" "очереди: по умолчанию"
Это утверждение повторяется непрерывно ..
Более того, в браузере нет вывода