Websockets
Eintrag zuletzt aktualisiert am: 25.10.2012
Websockets ist ein
W3C Standard (
RFC 6455 vom Dezember 2011) für bidirektionale Kommunikation über Port 80 und 443, einsetzbar zum Versand von Nachrichten von
Webservern and
Webbrowser (nachdem der Browser erstmals die Kommunikation eingeleitet hat).
HTTP-Request/Response, aber
TCP-Verbindung bleibt offen ("Upgrade")
Websockets ist ein relativ junger, neuer
W3C Standard (
RFC 6455 vom Dezember 2011) für bidirektionale Kommunikation zwischen
Webbrowser und
Webserver. Bisher war die
HTTP-Kommunikation zwischen zwischen
Webbrowser und
Webserver auf das Anfrage-Antwort-Modell beschränkt: Der Browser stellt eine Anfrage und der
Webserver kann eine Antwort senden. Der
Webserver kann aber nicht selbst aktiv an den Browser Daten senden. Der Browser kann lediglich durch wiederholtes Anfragen (Polling) beim Server nachfragen, ob es neue Daten gibt. Websockets basieren auf
HTTP. Nachdem der Browser erstmals die Kommunikation per
HTTP eingeleitet hat, bleibt die darunterliegende
TCP-Verbindung bleibt offen. Man nennt dies ein „Upgrade“, das der
Webbrowser im
HTTP-Header der Anfrage explizit anfordern muss (Upgrade: Websocket). Der
Webserver bestätigt dies in der
HTTP-Antwort. Websockets-Kommunikation wird über Port 80 und 443 (
SSL) abgewickelt, als Prefixe kommen ws: und wss: (
SSL) zum Einsatz. Clientseitig muss mit
JavaScript die Interaktion eingeleitet werden und die Nachrichten des
Webserver behandelt werden. Dafür benötigt man das
Objekt WebSocket mit den Operationen OnOpen(), OnMessage(), OnClose().
Voraussetzungen
Voraussetzung ist ein Browser, der Websockets unterstützt. Das sind aktuell:
- Internet Explorer seit Version 10
- Firefox seit Version 7
- Chrome seit Version 4
- Opera seit Version 1
Aber auch serverseitig müssen Websockets explizit unterstützt werden. Microsoft bietet dies nur im
Internet Information Server Version 8.0 in
Windows 8 und
Windows Server 2012. Auch
IIS Express 8.0 kann Websockets, aber der Visual Web Development
Webserver (auch in der aktuellen Version in
Visual Studio 2012) ist da außen vor. Zu beachten ist, dass auf
Windows 8 und
Windows Server 2012 die Websocket-Unterstützung eine optionale Funktion ist, die über die Systemsteuerung bzw. den Server Manager erst installiert werden muss. Zum Programmieren der Websockets auf dem Server benötigt man dort
WCF 4.5 oder
ASP.NET 4.5.