Разоблачить сокет через веб-сокеты - PullRequest
1 голос
/ 05 октября 2011

У меня есть сервер, который создает сокет на порту 8181. Я хотел бы получить доступ к этому сокету с веб-страницы, открытой в Google Chrome 14. Полагаю, это невозможно сделать прямым способом.Chrome обеспечивает поддержку веб-сокетов, но не стандартных сокетов.Это правильно?

Можно ли как-то создать посредника, который бы выставлял мой сокет-сервер, прослушивающий порт 8181, как веб-сокет-сервер, работающий на каком-то другом порту?

1 Ответ

6 голосов
/ 06 октября 2011

websockify - это универсальный прокси / мост сокета WebSockets to TCP. Первоначально я создал websockify, чтобы позволить noVNC (клиент HTML5 VNC) иметь возможность подключаться к непатентованному серверу VNC. Но он в целом полезен (не специфичен для VNC), поэтому я выделил его как отдельный проект.

В системе UNIX / Linux вы запускаете websockify так:

./websockify 8080 my_server:8181

Порт 8080 в приведенном выше примере является портом для прослушивания соединений WebSocket. my_server - это имя / IP-адрес вашей системы, на которой сервер прослушивает порт 8181. Если вы запускаете websockify в той же системе, что и ваш сервер, вы можете просто использовать localhost вместо my_server.

Проект websockify также поставляется с библиотекой оболочки Javascript, которая называется websock.js. websockify поддерживает новые версии протокола (используемые в Chrome 14+ и Firefox 6+), но также работает со старыми версиями. Однако в более старых версиях протокола нет способа отправки необработанных двоичных данных (только UTF-8), поэтому websock.js и websockify работают вместе для кодирования / декодирования данных base64 (между браузером и websockify) при использовании старый протокол, так что вы все еще можете отправлять необработанные двоичные данные в / из цели.

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