La mejor manera de evitar los efectos del algoritmo Nagle usando webSockets?

Estoy utilizando webSockets para conectar un cliente javascript webSocket a un java webSocketServer (desde una aplicación de Android), utilizando la biblioteca Java-WebSocket . La aplicación para Android envía un pequeño mensaje cada pocos milisegundos al cliente javascript.

Utilizando el enfoque básico (e intuitivo) para esta situación, el retardo entre mensajes recibidos, medido dentro del javascript Cliente muestra (aproximadamente) el siguiente patrón: 200 ms, 0,1 ms, 0,1 ms, 0,1 ms, 0,1 ms, 0,1 ms, 0,1 Ms, 200 ms, 0,1 ms, 0,1 ms, 0,1 ms, 0,1 ms, 0,1 ms, 0,1 ms, 200 ms, 0,1 ms, 0,1 ms, 0,1 ms, 0,1 ms, 0,1 ms, 0,1 ms …

Este es el efecto del algoritmo Nagle, que se establece de forma predeterminada, agrupando varios mensajes antes de enviarlos.

Puesto que no he encontrado una manera de garantizar su desactivación, sigo el enfoque propuesto en esta vieja pregunta, enviando un mensaje de acuse de recibo del cliente al servidor, y el sistema se comporta correctamente, pero como el mensaje de reconocimiento no tiene ningún propósito real Es más un hack), debe ser evitado.

La pregunta es, ¿esto sigue siendo la mejor solución a este problema? ¿Conoce alguna manera de evitar el agolpamiento?

Gracias.

Debido a que no parecen estar presentes en la biblioteca utilizada mecanismos flush o setTCPNoDelay, y no se han propuesto otras soluciones, parece que la solución de mensaje de confirmación sigue siendo válida como la mejor solución a este problema.

  • WebSocket HTML5 en el teléfono para Android
  • ¿Es la mejor práctica para las conexiones móviles persistentes en Android?
  • ¿Es posible usar WebSockets o similar con una aplicación nativa de Android?
  • Web Sockets en el navegador Samsung Galaxy S3 Android?
  • Comunicación de Android a node.js
  • Mensajería instantánea sobre xmpp o websocket
  • Cómo implementar un WebSocket con Retrofit + RX
  • WebSockets para Android en la aplicación Phonegap con Node.js / Socket.IO server & client
  • XMPP, WebSocket y otras preguntas
  • Configurar un cliente Stomp en android con el marco de Spring en el lado del servidor
  • Problemas con el certificado WSS y SSL en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.