Ich entwickelte einen Chat-Server mit Websocket in Cowboy, aber ich möchte wissen, ob die Nachricht vom Server zum Client-Erfolg gesendet. Wie kann ich wissen?Wie kann ich wissen, ob die Nachricht von Websocket erfolgreich gesendet oder nicht
Antwort
Websocket ist eine ziemlich dünne Abstraktionsschicht über einem herkömmlichen TCP-Socket. Nach dem ersten Handshake ist der Unterschied minimal. Die Frage ist also: Woher weiß ich, ob ein Datenblock von der Gegenstelle empfangen wurde? Die kurze Antwort: nur wenn der Peer sie explizit mit dem Protokoll auf Anwendungsebene bestätigt. Der Remote-Client sendet TCP-ACK-Pakete für jedes Datenpaket, das Sie ihm senden, aber diese Tatsache ist aus guten Gründen gut vor der Anwendung verborgen. Empfang eines ACK-Pakets bedeutet nur, dass der entfernte TCP-Stack damit umgegangen ist, sagt aber nichts darüber aus, wie (und ob) die Client-Anwendung es verarbeitet hat.
Fügen Sie Ihrem Chatprotokoll einen speziellen Nachrichtentyp "Bestätigung" hinzu. Fügen Sie in allen ausgehenden Nachrichten eine monoton ansteigende Sequenznummer ein und fügen Sie die SN der empfangenen Nachricht in die ACK-Nachricht ein, um genau zu erfahren, wie viele Daten der Client bereits verarbeitet hat.
- 1. Wie kann ich wissen ob Login erfolgreich ist oder nicht?
- 2. Python wissen, ob ein Datensatz erfolgreich eingefügt oder nicht
- 3. Wie kann man wissen, wer die Nachricht
- 4. Wie kann ich wissen, ob die Abbestellung von Channels in Pubnub erfolgreich ist?
- 5. Wie wissen, ob die Abfrage erfolgreich in PLSQL
- 6. So überprüfen Sie, ob die Mail erfolgreich gesendet wurde
- 7. Android GCM-Nachricht erfolgreich gesendet, aber nicht empfangen
- 8. Wie kann ich wissen, dass viele Nachrichten gesendet/empfangen wurden?
- 9. wie kann man wissen, ob ein Client lebt oder nicht
- 10. Websocket-Timing: Wie bekomme ich die genaue Zeit, wann eine Websocket-Nachricht im Browser ankommt?
- 11. Wie finde ich die Verbindung einer node.js Websocket-Nachricht?
- 12. Ermitteln, ob E-Mail-Nachrichten erfolgreich gesendet werden können
- 13. Wie zu wissen, ob meine Anwendung admin oder nicht
- 14. Wie kann ich feststellen, ob ein BPM-Prozess erfolgreich war?
- 15. Wie kann ich überprüfen, ob die Mailadresse existiert oder nicht?
- 16. Wie kann ich feststellen, ob ein Realm erfolgreich aktualisiert wurde?
- 17. Ratsche WebSocket - Nachricht sofort senden
- 18. Wie kann eine Nachricht mithilfe der neuen Gmail-REST-API erfolgreich gesendet werden?
- 19. Ist der Fehler beim Senden oder Empfangen? Vollständige Nachricht nicht gesendet oder Nachricht nicht richtig decodiert
- 20. So testen Sie, ob PHP mail() erfolgreich Mail gesendet hat
- 21. Kafka Nachricht an WebSocket
- 22. install4j: Wie kann ich überprüfen, ob mein Apache Tomcat Server erfolgreich gestartet wurde oder nicht?
- 23. Wie kann ich wissen, ob ich hinzufügen zu zeigen, die ich von Admob-Server bekomme?
- 24. Laravel 4 Mail-Klasse, wie Sie wissen, ob die E-Mail gesendet wurde?
- 25. Wie kann man wissen, ob RAPI dll
- 26. spymemcached: Wie kann ich feststellen, ob Memcached erfolgreich verbunden war?
- 27. Wie kann ich wissen, ob ein ModalViewController angezeigt wird?
- 28. Wie kann man wissen, ob eine Sitzung
- 29. Wie kann ich wissen, ob eine ausführbare Datei inkrementell verknüpft wurde oder nicht?
- 30. Überprüfen, ob sp_send_dbmail erfolgreich war
Sie sollten zurückkommen und eine Antwort auf Ihre Frage wählen – thedouglenz