Ich verwende socket.io, um ein Smartphone (in einem Webframe) mit einem Server zu verbinden und ein paar Nachrichten auszutauschen (ein paar kurze Zeichen pro Minute, nichts Großes). Da Smartphones oft eine instabile Verbindung haben, ist socket.io gezwungen, von Zeit zu Zeit erneut zu verbinden. Dies geschieht automatisch und die Nachrichten, die ich senden möchte, nachdem festgestellt wurde, dass die Verbindung derzeit nicht verfügbar ist, werden zwischengespeichert und als Bundle gesendet, sobald die Verbindung wieder hergestellt ist. Im Grunde läuft also alles gut mit socket.io.
Aber wenn ich eine Nachricht sende, kurz bevor socket.io bemerkt, dass die Verbindung weg ist, geht die Nachricht verloren. Sie kann nicht übertragen werden, wird aber auch nicht von socket.io zwischengespeichert. Ich bin zufrieden mit socket.io, aber dieses Problem stört mich, da ich nicht viele Nachrichten sende, aber die, die ich sende, zuverlässig gesendet werden müssen. Während die Verbindung hergestellt ist, werden alle Nachrichten einwandfrei übertragen, daher muss ich das nicht überprüfen. Nur die Sekunde zwischen dem Verlust der Verbindung und dem Erkennen von socket.io ist der kritische Moment, in dem ich Datenverlust habe.
Ich habe darüber nachgedacht, das TCP-Verhalten mit Sequenznummern und Bestätigungen nachzuahmen, aber es fühlt sich ein wenig an wie mit Kanonen auf Spatzen schießen. Also meine Frage: Hat jemand eine leichte Lösung für dieses Problem oder es selbst erlebt? Ich frage nicht einmal explizit nach Code - das kann ich selbst machen - aber ein Konzept oder so etwas, um dieses spezifische Problem loszuwerden, wäre großartig.
Vielen Dank im Voraus!