2011-09-21 28 views
10

¿WebSocket brinda soporte para compresión de datos para ahorrar ancho de banda? ¿Cuáles son las opciones disponibles? Una posible solución podría ser el uso de Bijson en lugar de Json.Compresión de datos WebSocket

Respuesta

-3

¿Podría hacer un túnel a través de una conexión ssh con el cifrado desactivado y la compresión establecida al máximo?

ej .: especificaciones

ssh -N -g -f -C -o CompressionLevel=9 -o Cipher=none [email protected] -L 6999:172.16.1.218:3129

1

WebSocket permiten extensiones, como deflate-stream. Sin embargo, puede o no ser admitido por el cliente y el servidor.

Es posible que desee utilizar Zip basado en javascript u otros algoritmos de compresión.

3

La primera forma en que Websockets ahorra ancho de banda es dejando la conexión abierta para múltiples mensajes (bidireccionales). La conexión puede permanecer abierta el tiempo que sea necesario. Esto significa que no es necesario negociar una nueva conexión para cada transacción, como el antiguo enfoque http. Los mensajes en sí tienen información de encabezado que especifica si el mensaje entrante es de texto o binario, y cuánto tiempo dura la "carga útil".

Puede dejar que su servicio interprete los mensajes de la forma que desee. Los datos específicos relacionados con la compresión se pueden expresar a través de extensiones: Véase la sección 9 de la norma: http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-15#section-9

La organización de estándares ha producido un borrador de trabajo para la extensión de compresión: http://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-00

3

El actual proyecto de protocolo WebSockets no contiene una extensión de compresión . Hubo una anteriormente: deflate-stream, que funciona al comprimir toda la secuencia de WS. La efectividad de eso es limitada, ya que WS introdujo enmascaramiento de marco de cliente a servidor, con la máscara cambiada por cuadro, y por lo tanto, desinflar no sería capaz de mantener un diccionario de compresión efectivo.

Hay una propuesta de borrador para la compresión basada en marcos que funciona en este sentido, ya que el diccionario de compresión se mantiene para la carga antes del enmascaramiento.