Поддерживает ли WebSocket поддержку сжатия данных для экономии полосы пропускания? Какие существуют варианты? Одним из возможных решений может быть использование Биджона вместо Json.
Сжатие данных WebSocket
Ответ 1
Первый способ, с помощью которого Websockets сохранять пропускную способность, заключается в том, что соединение открыто для нескольких (двунаправленных) сообщений. Соединение может оставаться открытым до тех пор, пока оно необходимо. Это означает, что новое соединение не нужно обсуждать для каждой транзакции, такой как старый подход http. В самих сообщениях есть информация заголовка, которая указывает, является ли входящее сообщение текстовым или двоичным, и как долго "полезная нагрузка".
Вы можете позволить своей службе интерпретировать сообщения так, как вы хотите. Специфические данные, связанные с сжатием, могут быть выражены через расширения: см. Раздел 9 стандарта: http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-15#section-9
Организация стандартов подготовила рабочий проект для расширения сжатия: http://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-00
Ответ 2
Текущая версия протокола WebSockets не содержит расширения сжатия. Был один ранее: deflate-stream, который работает, сжимая весь поток WS. Эффективность этого ограничена, так как WS представил маскирование кадров от клиента к серверу, с маской, измененной на кадр, и тем самым deflate не сможет поддерживать эффективный словарь сжатия.
Существует проект предложения для сжатия на основе фреймов, который работает вокруг этого, поскольку словарь сжатия поддерживается для полезной нагрузки перед маскировкой.
Ответ 3
Спецификации WebSocket допускают расширения, такие как deflate-stream. Однако он может поддерживаться или не поддерживаться клиентом и сервером.
Вы можете использовать javascript-based Zip или другие алгоритмы сжатия.
Ответ 4
Вы можете туннелировать все через ssh-соединение с отключенным шифрованием и максимальным сжатием?
например:.
ssh -N -g -f -C -o CompressionLevel=9 -o Cipher=none [email protected] -L 6999:172.16.1.218:3129