Могу ли я открыть соединение через веб-сокет с локальным сервером, работающим на произвольном порту? - PullRequest
6 голосов
/ 17 мая 2011

У меня есть локальный сервер, выводящий данные моего домашнего датчика в реальном времени, и я хочу визуализировать их в своем браузере.

У меня вопрос: могу ли я использовать веб-сокет, чтобы открыть соединение моего браузера с локальным сервером? Как бы я поступил так?

Локальный сервер работает с номером порта, отличным от http, и я не могу его изменить.

1 Ответ

7 голосов
/ 17 мая 2011

Да и нет.

нет

Нет

WebSockets не являются необработанными TCP-соединениями. Они имеют HTTP-совместимое рукопожатие (как для безопасности, так и для совместимости с существующими серверами) и имеют минимальное кадрирование для каждого пакета, чтобы сделать WebSockets протоколом на основе сообщений. Кроме того, текущие API и протокол WebSocket, которые существуют в браузерах на сегодняшний день, напрямую не поддерживают сообщения двоичных данных. Они только в кодировке UTF-8.

Да :

Вы можете использовать websockify для прокси соединения WebSockets с необработанным двоичным TCP-сервером. websockify - это python proxy / bridge, который имеет двоичную поддержку, а также включает в себя библиотеку javascript, чтобы упростить взаимодействие с ним. Кроме того, websockify включает web-socket-js fallback / polyfill (реализовано во Flash) для браузера, который не имеет встроенной поддержки WebSockets. Недостатком является то, что вам нужно где-то запустить websockify (либо в клиентской системе, либо в системе сервера, либо в какой-либо другой системе). Кроме того, websockify является Linux / UNIX только на данный момент. С другой стороны, у websockify есть специальный режим, который вы можете использовать для запуска и переноса существующего сервиса.

Отказ от ответственности: я сделал websockify.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...