Вещание с Laravel Echo, laravel-echo-server и socket.io не работает - PullRequest
0 голосов
/ 24 января 2019

Я успешно настроил веб-сокеты с 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" "очереди: по умолчанию"

Это утверждение повторяется непрерывно ..

Более того, в браузере нет вывода

1 Ответ

0 голосов
/ 24 января 2019

Вам необходимо установить конфигурацию redis внутри файла laravel-echo-config.json, чтобы он знал, откуда "ask for messages", например:

"databaseConfig": {
    "redis": {
        "host": "http://127.0.0.1"
        "port": "6379"
    },
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...