Stellen Sie sich vor Ich möchte ein Echtzeit-Multiplayer-Spiel mit HTML5 (Client) und node.js (Server) erstellen.WebRTC der richtige? (Echtzeit-Multiplayer-Spiel)
Ich muss die Daten transportieren, sehr schnell von dem Server an die Clients und umgekehrt.
In einer nativen Anwendung würde ich UDP
für die meisten Daten verwenden (Spielerposition, ...), weil es viel schneller ist als TCP
und es ist unkritisch, wenn es verloren geht.
In HTML5
kann ich (nur) WebSockets
verwenden. WebSockets ist auf TCP und somit nicht schnell genug für eine gute Leistung.
Ich hörte von WebRTC
, aber ich weiß nicht, ob dies die Lösung für dieses Problem sein könnte.
Hat jemand Erfahrung damit?
(ich weiß, dass WebRTC für die meisten Browser noch nicht unterstützt wird, aber das ist für mich keine Rolle.)
Sind Sie sicher, dass die Websockets für Ihren Anwendungsfall zu langsam sind? Ein TCP-Socket wird für die Dauer Ihrer Websocket-Sitzung offen gehalten, so dass Sie sich nicht um den Overhead der Verbindung für jede Nachricht kümmern müssen. – simonc
TCP: Zuverlässige Zustellung von Nachrichten; Alle Daten werden bestätigt Lieferung aller Daten wird verwaltet, und verlorene Daten werden automatisch erneut übertragen. UDP: Unzuverlässige, bestmögliche Lieferung ohne Bestätigungen Also TCP ist einfach die falsche Technik für diesen Anwendungsfall. – appsthatmatter
Versuchen Sie, es mit WebSockets zu implementieren und zu messen, ob es wirklich zu langsam ist (überflüssig zu sagen, abstrahieren Sie Ihre Transport-Implementierung, so dass, wenn WebSockets sich als unbefriedigend erweisen, Sie etwas anderes verwenden können, ohne viel Code zu verwerfen). Im Moment optimieren Sie vorzeitig. – ebohlman