Verwenden von Event-Maschine und Ruby. Momentan mache ich ein Spiel, bei dem am Ende des Zuges überprüft wird, ob dort andere Benutzer sind. Wie kann ich beim Senden von Daten an den Benutzer mit ws.send() überprüfen, ob der Benutzer tatsächlich die Daten erhalten hat oder eine alternative Lösung ist?Ruby websocket überprüfen, ob Benutzer existiert
Antwort
Da die Bibliothek Ihnen keinen Zugriff auf die zugrunde liegenden Protokollelemente bietet, müssen Sie Ihrem Anwendungsprotokoll Elemente hinzufügen, um dies zu tun. Ein typischer Ansatz besteht darin, jeder Nachricht und jeder Antwort auf Nachrichten mit Bestätigungsnachrichten, die diese Identifikatoren enthalten, eine Kennung hinzuzufügen.
Beachten Sie, dass ein solcher Ansatz Ihnen nur hilft, eine bessere Vorstellung davon zu haben, was ein Kunde erhalten hat. Es gibt keine Garantie für einen bestimmten Zustand im Falle von Fehlern. Ein Beispiel wäre der Verlust einer Verbindung, nachdem der Client eine ACK gesendet hat, der Dienst diese jedoch nicht erhalten hat.
Aufgrund der eben erwähnten Komplexität ist es oft einfacher zu versuchen, die meisten Operationen idempotent zu machen - das kann ohne Schaden für das System wiedergegeben und während/nach Fehlerbedingungen wieder abgespielt werden. Sie können außerdem eine Möglichkeit finden, den relevanten Zustand regelmäßig vollständig zu synchronisieren, um die langfristige Fortsetzung von geringfügigen Fehlern zu vermeiden, die durch den Verlust von Daten/einer Verbindung verursacht werden.
Gaben Daumen hoch. Ich habe die Antwort auf mein Problem gefunden. Ich habe socket.state verwendet, um festzustellen, ob der Socket geschlossen oder offen ist, und auf diese Antwort reagieren. – ninetailschris
- 1. Firebase Facebook Login überprüfen, ob Benutzer existiert
- 2. Überprüfen, ob Fragment existiert
- 3. Firebase überprüfen, ob Kind existiert
- 4. Überprüfen, ob eine Formulareingabe existiert
- 5. Ruby: Überprüfen, ob die Datei auf einem Remote-Server existiert
- 6. Überprüfen Sie, ob der Benutzer in Passport-Local existiert
- 7. Swift & Firebase | Überprüfen, ob ein Benutzer mit einem Nutzernamen existiert
- 8. Überprüfen, ob die Position existiert
- 9. Mysql - Überprüfen, ob Zeile existiert
- 10. überprüfen, ob der Wert existiert
- 11. Überprüfen, ob ein Datenrahmen existiert
- 12. Überprüfen, ob ein Registrierungsschlüssel existiert
- 13. VimL: Überprüfen, ob Funktion existiert
- 14. Überprüfen, ob Remote-Datei existiert
- 15. überprüfen, ob URL existiert php
- 16. Überprüfen, ob ein Element existiert
- 17. Überprüfen, ob der Websocket-Server heruntergefahren ist
- 18. Überprüfen, ob Rake-Task in Rakefile existiert
- 19. Überprüfen, ob der Benutzername in Django existiert
- 20. Java XML überprüfen, ob Knoten existiert
- 21. Codeigniter & PHP überprüfen, ob Sitzung existiert
- 22. Überprüfen, ob ParseUser existiert vor der Anmeldung
- 23. überprüfen, ob Wert existiert in 2D-Array
- 24. PHP: überprüfen, ob Bild existiert (Methoden)
- 25. Mit WatiN ... überprüfen, ob ein Element existiert?
- 26. Powershell: Überprüfen, ob das heutige Backup existiert
- 27. Überprüfen, ob Realm-Objekt bereits existiert
- 28. Mod_rewrite überprüfen, ob PHP-Datei existiert
- 29. PHP überprüfen, ob Datensatz in SQL existiert
- 30. Überprüfen, ob JQuery-Objekt in DOM existiert
In der Regel müssen Sie über den Socket zurückpingen, um zu überprüfen, ob die Fernbedienung aktiv ist und nicht blockiert ist. – tadman
Hat Ping einen Rückruf, um zu überprüfen, ob eine Antwort erfolgt. Wie wahr oder falsch? – ninetailschris