Websocket для двоичной передачи данных и декодирования

StackOverflow https://stackoverflow.com/questions/3806100

Вопрос

Я читал через спецификацию и множество примеров о использовании WebSockets. Почти все они говорят о передаче сообщений UTF-8 или ASCII с помощью WebSockets.

Последний Hybi WebSocket SPEC запросил поддержку бинарной передачи. REQ 6 в спецификации Hybi

Также я прочитал где-то, что Chrome поддерживает Hybi. Но последняя релиз Chrome 7.0 работает только тогда, когда Проект-ХИХИ выбран в конфиге Pywebsocket.

Есть ли у любого браузера поддержки для Hybi Spec? Даже если это dev, это нормально.

Это было полезно?

Решение

Это может быть некоторое время до того, как в Websockets поддерживается кодировка Non-UTF-8 (т. Е. Двоичная).

Я предлагаю использовать Base64 кодировать / декодировать на клиенте и сервере. Все браузеры с поддержкой WebSockets имеют Window.Atob (Base64 DeCode) и Window.BTOA (кодирование Base64). Большинство языков вы можете написать сервер WebSockets в имеющих библиотеках Base64 (то есть модуль Base64 в Python).

Если вы хотите передать двоичные данные, вы можете быть интересны в WSProxy, включенные в Novnc. который является веб-клиентом VNC. WSProxy (есть версия C и Python) - это Websockets для общего прокси-сервера TCP. IT BASE64 кодирует / декодирует весь трафик к / из браузера. Вы можете использовать его для подключения к браузеру Websockets, способным к любому типу порта TCP.

Примечание, Novnc имеет реализацию javaScript of Base64 кодирования / декодирования / декодирования, потому что вера его или нет, версия JavaScript немного быстрее, чем atob / btoa.

Отказ от ответственности: Я создал Novnc.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top