Beste Möglichkeit, Hochgeschwindigkeitsdaten von einer Telnet-Schnittstelle in einer Webansicht anzuzeigen?

Ich möchte Daten, die von einer Telnet-Schnittstelle stammen, in einer Webansicht anzeigen. Ich habe einen Daemon, der CAN-Bus-Daten liest und ungefähr 500 Zeilen mit ~ 40 Zeichen pro Sekunde auf einem Telnet-Port erzeugt. Es sind ein paar Nachrichten, die mit 100 Hz und die meisten anderen mit 10 oder 5 Hz laufen, also in der Summe sind es ungefähr 500 / Sekunde. Ich möchte die neuesten Werte in jedem Paket abrufen und diese auf einer Webseite anzeigen. Die Webseite wird lokal geladen (nicht über HTTP) und der Dämon befindet sich möglicherweise auf einem anderen Host, sodass eine domänenübergreifende Kommunikation besteht.

Folgendes habe ich versucht und nicht getan:

Verwenden Sie XMLHttpRequest. Ich kann die Verbindung öffnen und die Daten lesen, aber ich kann das Feld responseText nicht mit den vorherigen Werten löschen, wenn ich das Ereignis onprogress erhalte. Ich kann es mir nicht leisten, den responseText auf den neuesten Wert zu analysieren, da dieser sehr schnell wächst. Ich werde auch auf Speicherprobleme stoßen, also ist dies ein No-Go.
WebSockets und Socket.IO: Keines hat sich beim Herstellen einer Verbindung zu einer Telnet-Schnittstelle als erfolgreich erwiesen, da erwartet wird, dass HTTP zuerst in ein direktes Socket konvertiert wird.

Meine Frage ist also, wie ich das am besten bewerkstellige. Einige Optionen, die ich sehe, aber ich bin sicher, dass es mehr gibt:

Fügen Sie im canlogserver-Daemon, mit dem ich eine Verbindung herstellen möchte, HTTP zur Socket-Konvertierung hinzu. Wie? (Es ist Open Source C, also könnte ich es ergänzen.)Schreiben Sie eine PHP-Schnittstelle, die über Telnet eine Verbindung zum Dämon herstellt und Daten über HTTP zurück in die Webansicht pumpen kann. Dies scheint bei mehreren Trips durch den IP-Stack äußerst ineffizient zu seinGibt es sonst noch etwas im JS-Client-Code, um mein Pufferproblem zu umgehen und Nachrichten vom Telnet-Server zu lesen, Daten anzuzeigen und dann den Puffer zu sichern? Ich muss sicherstellen, dass ich es bekommealles Sobald der Socket geöffnet ist, können die Nachrichten nicht mehr geöffnet, geschlossen oder erneut geöffnet werden, da dies bedeutet, dass Nachrichten verloren gehen.

Vielen Dank,

Tim

Antworten auf die Frage(2)

Ihre Antwort auf die Frage