Я хочу создать URI WebSocket относительно URI страницы на стороне браузера. Скажем, в моем случае конвертировать HTTP URI, например
http://example.com:8000/path
https://example.com:8000/path
к
ws://example.com:8000/path/to/ws
wss://example.com:8000/path/to/ws
Сейчас я заменяю первые 4 буквы «http» на «ws» и добавляю к ним «/ to / ws». Есть ли лучший способ для этого?
websocket
uri
relative-path
нейрон
источник
источник
path/to/ws
? Куда именно это ведет? СпасибоОтветы:
Если ваш веб-сервер поддерживает WebSockets (или модуль обработчика WebSocket), вы можете использовать тот же хост и порт и просто изменить схему, как вы показываете. Существует множество вариантов совместной работы веб-сервера и сервера / модуля Websocket.
Я бы посоветовал вам взглянуть на отдельные части глобального окна window.location и снова соединить их вместе, вместо того, чтобы выполнять слепую подстановку строк.
Обратите внимание, что некоторые веб-серверы (например, на базе Jetty) в настоящее время используют путь (а не заголовок обновления), чтобы определить, следует ли передать конкретный запрос обработчику WebSocket. Таким образом, вы можете быть ограничены в том, можете ли вы преобразовать путь так, как хотите.
источник
"/to/ws"
? Если нет, то какой должна быть ценность для этой части?Вот моя версия, которая добавляет порт tcp, если это не 80 или 443:
Изменить 1: улучшенная версия по предложению @kanaka:
Изменить 2: В настоящее время я создаю
WebSocket
это:источник
Использование API Window.URL - https://developer.mozilla.org/en-US/docs/Web/API/Window/URL
Работает с http (s), портами и т. Д.
источник
Предполагая, что ваш сервер WebSocket прослушивает тот же порт, с которого запрашивается страница, я бы предложил:
Затем для вашего случая назовите его следующим образом:
источник
легко:
источник
/^http/
вместо этого на'http'
всякий случайhttp
внутри адресной строки.На localhost вы должны учитывать контекстный путь.
источник
В машинописном тексте:
Применение:
источник
Мертвое простое решение, ws и порт, протестировано:
источник