Melhor maneira de exibir dados de alta velocidade a partir de uma interface telnet em uma visualização da web?

Gostaria de exibir dados provenientes de uma interface telnet em uma visualização da web. Eu tenho um daemon em execução que lê os dados do barramento CAN e produz cerca de 500 linhas de ~ 40 caracteres por segundo em uma porta telnet. São algumas mensagens rodando a 100 Hz e a maioria das outras rodando a 10 ou 5 Hz, então, em suma, é cerca de 500 / segundo. Eu quero pegar os valores mais recentes em cada pacote e exibi-los em uma página da web. A página da web é carregada localmente (não via HTTP) e o daemon pode estar em um host diferente, portanto, há comunicação entre domínios.

Aqui está o que eu tentei e não consegui fazer:

Use XMLHttpRequest. Eu posso abrir a conexão e ler os dados, mas não consigo limpar o campo responseText dos valores anteriores quando obtenho o evento onprogress. Eu não posso dar ao luxo de analisar o responseText para o valor mais recente, pois isso cresce muito rapidamente. Também vou me deparar com problemas de memória, então isso é um não-ir.
WebSockets e Socket.IO: nenhum provou ter sucesso em se conectar a uma interface telnet porque espera que o HTTP primeiro seja convertido em soquete direto.

Então, minha pergunta é: como faço melhor isso? Algumas opções eu vejo, mas tenho certeza que tem mais:

Adicionar HTTP à conversão de soquete no daemon canlogserver ao qual estou tentando conectar. Como? (é open source C, então eu poderia adicionar a ele)Escreva uma interface do PHP que se conecte ao daemon via telnet e possa bombear os dados de volta para a visualização da web via HTTP. Isso parece extremamente ineficiente com várias viagens através da pilha de IPs.Qualquer outra coisa no código do cliente JS para contornar meu problema de buffer e ler mensagens do servidor de telnet, exibir dados e, em seguida, despejar o buffer? Eu preciso ter certeza de que recebotodos as mensagens uma vez que o soquete é aberto, então a abertura, o fechamento e a reabertura não funcionarão, pois isso significará que as mensagens serão perdidas.

Obrigado,

Tim

questionAnswers(2)

yourAnswerToTheQuestion