Ошибка подключения к сокетным каналам при запуске эхо-сервера через поддомен - PullRequest
0 голосов
/ 21 октября 2019

Многие компании или рабочие места имеют протоколы безопасности, в которых открыты только общие порты, например, 80 (HTTP), 443 (HTTPS). Если бы у нас было наше веб-приложение, попробуйте подключиться к порту 6001 (по умолчанию laravel-echo-server), определенно некоторые из ваших пользователей столкнутся с проблемами при закрытии порта ... Источник

После создания субдомена в nginx я запустил через него сокеты, и он работал, за исключением того, что теперь я не могу подключиться ни к одному каналу. Client can not be authenticated, got HTTP status 419 "message": "Несоответствие токена CSRF",

Экспериментально отключена защита csrf, и ошибка изменена на Client can not be authenticated, got HTTP status 403 "message": "",

app.js

/**
 * Port configured on proxy server (default: 6001).
 * The default port for HTTPS protocol is 443.
 *
 * @type {string}
 */
const ECHO_DOMAIN = process.env.NODE_ENV === 'production'
    ? 'ws.site.com'
    : 'wsdev.site.com';

window.io = require('socket.io-client');

if (typeof io !== 'undefined') {
    window.Echo = new Echo({
        broadcaster: 'socket.io',
        host: `https://${ECHO_DOMAIN}`,
        reconnectionAttempts: 120
    });
...

успешное соединение enter image description here

Какисправить это?

1 Ответ

0 голосов
/ 21 октября 2019

Проблема устранена путем добавления переменной SESSION_DOMAIN = .site.com в .env , которая изменяет значение в 'domain' в config /session.php

Затем вам нужно очистить куки в браузере и кеш на сервере. Вам также может понадобиться composer dump-autoload . Первичный источник

...