Echtzeit mit WebSockets

Schere, Stein, Papier

Dank dem WebSocket-Protokoll muss Echtzeit im Web nicht mehr durch Polling simuliert werden, weil Websockets eine bidirektionale Kommunikation zwischen Webbrowser und Server erlauben.

Die Ansteuerung eines WebSockets im Browser ist ähnlich wie die eines XMLHttpRequests bei AJAX: Ein WebSocket-Objekt wird instanziiert, und sobald die Verbindung geöffnet ist, können mit send() Daten übertragen werden. Danach kann mittels eines EventListeners auf empfangene Daten reagiert werden.

Um die Realisierung einer solchen Webanwendung zu erproben, hab ich das wohl bekannteste Spiel "Schere, Stein, Papier" umgesetzt. Dabei spielt man entweder gegen andere Spieler über den Webbrowser oder gegen ein Python Script (so kann man auch alleine spielen ;). Damit der in PHP geschriebenen WebSocket Server auch hinter einer Firewall erreicht werden kann, nutze ich den Apache als Reverse Proxy.

Fazit

Durch die Realisierung haben sich Vor- und Nachteile von WebSockets heraus kristallisiert, welche bei zukünftigen Projekten sicherlich berücksichtigt werden. WebSockets sind eine schlanke und mächtige Technologie welche unnötige zeitliche Verzögerungen mindert. Die Standardisierte JavaScript-API, die keine clientseitige Installation benötigt, ermöglicht ohne grossen technischen Mehraufwand ein vielseitiger Einsatz.

html5
api
proof of concept
websocket
Veröffentlicht am Dienstag, 7. März 2017 - 13:37
Aktualisiert am Dienstag, 10. April 2018 - 15:36