2010-12-19 10 views
15

Ich war ziemlich gespannt von der Aussicht auf WebSockets. Da ich in der Vergangenheit ein paar auf Desktop-Sockets basierende Spiele und Web-Spiele gebaut habe, war ich daran interessiert, die beiden Ansätze zum Erstellen von webbasierten Multiplayer-Spielen ohne einen langen Poll-Hack zu kombinieren.Alternative zu WebSockets

Seit den Nachrichten, dass Firefox und Opera WebSockets aufgrund von Sicherheitsproblemen deaktiviert haben (see here), ist das das Ende von WebSockets für die nahe Zukunft?

Wenn WebSockets tatsächlich tot sind (oder auf absehbare Zeit verschoben werden), gibt es dann andere Alternativen als Long Polling?

Antwort

27

WebSockets sind lebendig und munter. Nur Firefox 4 Beta hat die native WebSockets-Unterstützung deaktiviert, Chrome und Safari nicht. Opera kündigte an, dass sie keine Veröffentlichung mit sich bringen werden, bis die Probleme behoben sind, aber sie haben noch keine Alpha/Beta-Version ausgeliefert, mit der sie trotzdem aktiviert wurde.

Darüber hinaus verwenden eine Menge (vielleicht die meisten) der Projekte, die WebSockets verwenden, die (Flash) -Fallback. Für diese Projekte wird web-socket-js verwendet, wenn es in Browsern ohne WebSockets ausgeführt wird oder deaktiviert ist. Es wird weniger effizient als native, aber immer noch viel niedrigere Latenz als Long-Polling.

Aber es ist auch wichtig, daran zu denken, dass WebSockets viel jünger als die meisten anderen Teile von HTML5 ist (Teil des Grundes, dass es vor einigen Monaten abgespalten wurde) und es immer noch sehr im Entwurfsstadium ist.

Auch die Hybi Arbeitsgruppe (verantwortlich für die WebSockets Protokoll Entwurf) hat soeben eine updated draft standard 04 veröffentlicht, die die Browser-Anbieter Sicherheitsbedenken (Anmerkung insbesondere Adressen, die die Bedenken sind nicht wegen einer Sicherheitslücke in WebSockets aber das WebSockets kann verwendet, um Sicherheitslücken in HTTP-Vermittlern auszunutzen).

Die discussion about WebSockets ist immer noch sehr aktiv auf HyBi. Ich erwarte, dass es einen weiteren Entwurf mit weiteren Verbesserungen geben wird, bevor es in die nächste Runde der Browser-Veröffentlichungen geht. Die Browser-Anbieter möchten das Problem der WebSockets-Adressen lösen (Netzwerkkommunikation mit geringer Latenz und geringem Aufwand über den Browser), so dass die Umstellung auf WebSockets schnell erfolgt.

Der aktuelle Stoß ist nur eine Beule. Unabhängig davon, wie lange die nativen Implementierungen zur Fertigstellung benötigen, können Sie dennoch WebSockets in jedem Browser mit web-socket-js verwenden.

aktualisieren:

Das neue Hybi Protokoll, das die Sicherheit betreffen (unter anderem) adressiert ist abgeschlossen und wird voraussichtlich offiziell in diesem Monat (November 2011) veröffentlicht werden. HyBi-17 ist die neueste Version der Spezifikation.

Mit IE10-Entwicklervorschau einschließlich WebSockets, Opera und Android Browser die einzigen Browser, die keine WebSockets-Implementierung liefern, die standardmäßig aktiviert ist (die Opera-Implementierung kann manuell aktiviert werden). Ich erwarte, dass sich das bald ändert und in der Zwischenzeit wurde web-socket-js auf die HyBi-Protokollserie aktualisiert und ist immer noch eine gute Polyfill/Shim für Browser ohne Standardunterstützung.