Welche schnelleren alternativen habe ich, um websockets für eine Echtzeit-web-Anwendung?

Ich bin Planung zu schreiben, ein Echtzeit-co-op-multiplayer-Spiel. Derzeit bin ich in der recherchephase. Ich habe bereits ein rundenbasiertes Spiel, das verwendet websockets und es war in Ordnung arbeiten.

Ich habe nicht versucht, das schreiben eines Echtzeit-Spiel mit dieser Technik jedoch. Meine Fragen ist über websockets. Gibt es eine alternative Methode zum behandeln der Kommunikation zwischen (browser -) Kunden? Meine Idee ist, das Spiel Stand in jedem client und senden nur die deltas, um die clients mit dem server als mediator/- Synchronisierung-tool.

Mein Hauptanliegen ist die Netzwerk Geschwindigkeit. Ich möchten, dass clients in der Lage sein zum empfangen des jeweils anderen Aktionen, so schnell wie möglich mein Spiel zu bleiben, kann Echtzeit. Ich habe über 20-30 frames pro Sekunde mit weniger als einem KByte Daten pro frame (was bedeutet, dass maximal 20-30 KByte Daten pro Sekunde pro client).

Ich weiß, dass Dinge wie "Netzwerk-Geschwindigkeit" hängt von der Verbindung, aber ich interessiere mich für die "wenn alles andere gleich" der Fall.

  • wie konnte etwas schneller sein als websockets, können Sie Schiff raw-binary mit nur ein paar bytes overhead? 30kb/s ist auch zu viel für die Allgemeinheit, wenn es gebunden ist auf frames überhaupt.
  • Ich weiß nicht, das ist, warum ich fragte.
  • fair genug, mein Punkt ist, dass mit websockets können Sie Schiffs-Daten so schnell wie das Netzwerk geht und mit über als minimale Latenz und overhead, wie es kommt. 30FPS sollte kein problem sein, socket Reisen sind in der Regel unter 10ms (nicht mitgerechnet TTFB), es sei denn, dein server ist weit Weg, in welchem Fall es kann bis zu 15ms zu gehen, vor allem rund um die Welt. 15ms*2=30ms hin-und Rückfahrt, 1000ms/30ms=33.3 FPS. Versand Reine deltas, wahrscheinlich bedeutet, dass die Schifffahrt ein Schlüssel / Wert-paar, sondern eine geordnete Reihe von Werten-nur wäre wahrscheinlich "billiger", auch mit den zusätzlichen Kommas erstellen einer sparse-array, während das weglassen redundanter Elemente.
  • Hört sich gut an. Sie möchten, dass eine Antwort so kann ich upvote es.
  • Latenz-Zeiten sind viel größer als Sie denken. transatlantic (z.B.: New York-London) ist in der Regel > 100ms. wenn Sie sind unglücklich genug, (von einer Netzwerk-engineering-Perspektive), in Neuseeland zu Leben, können Sie erwarten, dass mindestens 150 MS an /alle/ kostengünstige Datacenter-basierten hosting. viele der großen telcos veröffentlichen historische round-trip-Zeiten. zB: verizonenterprise.com/about/network/latency
  • ich war nicht darüber reden-trip-Zeiten, war ich Rede, wie lange dauert es, wenn der server schließt die Verbindung, wenn der client parst die Antwort, das dauert bei weitem nicht so lange wie eine halbe round-trip - ... ex: CHI-SF dauert etwa 70ms ping, aber die Antwort kommt in der Regel innerhalb von 10-20ms, nachdem es versendet, sobald die Verbindung aufgebaut ist und läuft... es ist eine Frage, wie stale die Daten auf dem server, wenn es trifft die Kunden, und die Antwort ist "nicht sehr" (bezogen auf die ping-Zeiten)
  • fairer Punkt, dass die Zeit der Flug wird besser sein, dass die Hälfte der RTT. ich war meist uneins mit Ihrem "es kann bis zu 15ms zu gehen, vor allem rund um die Welt" - Kommentar. wie du selbst sagst, CHI-SF wird so lange dauern. wenn Sie planen, für eine /global/ service, den Sie benötigen, um den Faktor auf längere Zeiten.
  • dies veranlasste mich zu suchen der /theoretische/ Geschwindigkeit der übertragung; en.wikipedia.org/wiki/Optical_fiber besagt, dass die Geschwindigkeit von Licht durch die Faser ~200,000,000 ms. so CHI-SF dauern würde, 2,981,000 m / 200,000,000 ms = 0.014905 Sekunden = ~15ms. ich würde bezüglich "um die halbe Welt" als so etwas wie New York, Sydney: 15,979,000 m / 200,000,000 ms = 0.079895 Sekunden = ~80ms. dies sind die besten /theoretische/ Fällen. die Reale Welt umfasst in-direkte Faser-Pfade, überlastete Router und gremlins.
  • der Kommentar könnte besser gewesen, kein Zweifel... deine Mathe ist gut, aber, der server sollte idealerweise auf halbem Weg zwischen sydney und New York in diesem Fall und auch im Hinterkopf behalten-Pakete kann die Reise in beide Richtungen auf einmal, so mit allen, die, ich denke 20FPS ist machbar. wenn OP nur noch einen server für die Welt und die Benutzer von überall, es wird hart werden w/o Schätzung/Pufferung/Bearbeitung der Vergangenheit...

InformationsquelleAutor Adam Arold | 2015-02-23
Schreibe einen Kommentar