websocket-rails: сервер испускает протокол http://; клиент ожидает протокол ws://
Из использования клиента JavaScript:
Обратите внимание на отсутствие префикса протокола в URL сервера. Не добавляйте http:// или ws:// к URL-адресу, который вы передаете новому диспетчеру. WebSocketRails выберет лучший доступный для вас транспорт и автоматически добавит правильный префикс.
Я использую WebSocketRails впервые. Я получаю эту ошибку в клиенте:
Сбой соединения WebSocket с ws://localhost:3000/websocket: соединение закрыто до получения ответа на рукопожатие
Если я перейду в браузере http://localhost:3000/websocket
Я получаю сообщения, которые я ожидаю. Если я перейду к ws
URL, я получаю ERR_DISALLOWED_URL_SCHEME
, Таким образом, кажется, что сервер создает сообщения, но клиент пытается использовать неправильный протокол.
Как заставить клиента использовать http
протокол, а не ws
или заставить сервер транслировать его с ws
скорее, чем http
?
1 ответ
Наконец-то нашел ответ, покопавшись в исходном коде. Второй параметр конструктора называется use_websockets
и по умолчанию true
, Установка его в false
видимо заставляет его использовать http
вместо ws
,
var dispatcher = new WebSocketRails('localhost:3000/websocket',false);