¿La mejor forma de mostrar datos de alta velocidad desde una interfaz de telnet en una vista web?

Me gustaría mostrar los datos provenientes de una interfaz de telnet en una vista web. Tengo un demonio en ejecución que lee datos de bus CAN y produce aproximadamente 500 líneas de ~ 40 caracteres por segundo en un puerto telnet. Son unos pocos mensajes que se ejecutan a 100 Hz y la mayoría de los demás se ejecutan a 10 o 5 Hz, por lo que, en resumen, es de unos 500 / segundo. Quiero capturar los últimos valores de cada paquete y mostrarlos en una página web. La página web se carga localmente (no a través de HTTP) y el demonio puede estar en un host diferente, por lo que hay comunicación entre dominios.

Esto es lo que intenté y no pude hacer:

Utilice XMLHttpRequest. Puedo abrir la conexión y leer los datos, pero no puedo borrar el campo responseText de los valores anteriores cuando obtengo el evento onprogress. No puedo permitirme analizar el texto de respuesta para obtener el último valor, ya que este crece muy rápidamente. También voy a tener problemas de memoria, así que esto es un no-go.
WebSockets y Socket.IO: ninguno de los dos ha demostrado ser exitoso al conectarse a una interfaz de telnet porque espera que HTTP se convierta primero al socket directo.

Así que mi pregunta es, ¿cómo puedo lograr esto mejor? Algunas opciones las veo, pero estoy seguro que hay más:

Agrega la conversión de HTTP a socket en el demonio canlogserver al que estoy tratando de adjuntar. ¿Cómo? (Es código abierto C para que yo pueda agregarlo)Escriba una interfaz PHP que se conecte al demonio a través de telnet y pueda enviar datos a la vista web a través de HTTP. Esto parece muy ineficiente con múltiples viajes a través de la pila de IP. <¿Algo más en el código del cliente JS para evitar el problema de mi búfer y leer los mensajes del servidor telnet, mostrar datos y luego descargar el búfer? Necesito asegurarme de obtenertodos los mensajes una vez que se abre el zócalo, por lo que abrir, cerrar, reabrir no funcionará ya que eso significará que los mensajes se pierden.

Gracias,

Tim

Respuestas a la pregunta(2)

Su respuesta a la pregunta