Эхо Laravel подключается к толкателю вместо laravel-websockets

Я запускаю laravel-websockets как сервис systemctl.

Все работает, но после того, как я выполню sudo reboot, пока не начнется процесс laravel-websockets (я использую nginx в качестве обратного прокси-сервера) клиенты в приложении подключаются к толкателю вместо моей службы сокетов.

Если я очищаю файлы cookie и обновляю страницу (через несколько минут после запуска машины и всех служб), клиенты подключаются, как и должны, к laravel-websockets. Но только если я почищу куки. Независимо от того, сколько раз я обновляю страницу, клиент все еще подключается к толкателю, если я не очищаю файлы cookie.

На вкладке сети инструментов разработчика: https://sockjs-eu.pusher.com/pusher/app/.... вместо https://socket.mydomain.com

В моем приложении-толкателе у меня отключены клиентские события. Но в веб-сокетах laravel они у меня включены. Я точно знаю, что клиенты подключаются к толкателю, потому что я получаю это в консоли ошибок: To send client events, you must enable this feature in the Settings page of your dashboard.

Я также запускаю работник очереди laravel в качестве службы systemctl. Может это как-то связано? Должны ли они начинать в порядке или что-то в этом роде?

ИЗМЕНИТЬ

window.Echo = new Echo({
     broadcaster: 'pusher',
     key: process.env.MIX_PUSHER_APP_KEY,
     cluster: process.env.MIX_PUSHER_APP_CLUSTER,
     wsHost: 'socket.mydomain.com', //this is not the real domain
     wssHost: 'socket.mydomain.com', //this is not the real domain
     wssPort:443,
     forceTLS: true,
     disableStats: true,
 });

person grimdbx    schedule 30.11.2020    source источник
comment
Вы можете добавить свой код new Echo({}) ?   -  person Kamlesh Paul    schedule 30.11.2020
comment
@Kamlesh Paul Я добавил это в редактирование. Я только изменил домен, я не хочу делать его общедоступным.   -  person grimdbx    schedule 30.11.2020


Ответы (1)


попробуй этот конфиг

window.Echo = new Echo({
     broadcaster: 'pusher',
     key: 'broadcasting', // hard code
     wsHost: window.location.hostname,
     wssHost: window.location.hostname, 
     enabledTransports: ['ws', 'wss'],
     wssPort:443,
     forceTLS: true,
     disableStats: true,
 });

здесь key: 'broadcasting' сделайте это жестким кодом и попробуйте какое-то время, это создаст проблему, это моя конфигурация, может она вам поможет

person Kamlesh Paul    schedule 30.11.2020
comment
Да ты что-то напутал. Я использовал правильный ключ толкателя, и до того, как веб-сокеты laravel запустились, он попытался вместо этого подключиться к толкателю. Я изменил ключ и секрет .env на что-то случайное, и теперь это работает. Спасибо. Они должны были где-то упомянуть в документации, что вам не нужны правильные учетные данные толкателя. - person grimdbx; 30.11.2020