WebSockets: Echoserver/-client
Bin im Moment dabei die ereignisbasierten WebSockets auszuprobieren. Mit diesen lassen sich effizient Daten zwischen Webbrowser und -Server über eine stehende Verbindung austauschen.
Der Echoserver kann über - Zur Zeit nicht online - http://www.sven-drieling.de:12345/ ausprobiert werden (Firewall muss Zugriffe über Port #12345 zulassen). Er schickt die Eingaben unverändert zurück, die dann als onMessage: ...
im Textfeld ausgegeben werden.
Getestet ist er mit Firefox 4.0b2pre und Google Chrome 5. Safari 5 sollte auch funktionieren.
Die Clientseite, in JavaScript, ist dabei einfach. Mit new WebSocket(ws://www.sven-drieling.de:12345/echo)
wird die WebSocket-Verbindung aufgebaut und die Events in den onopen()-, onmessage()- und onclose()-
Handlern verarbeitet.
Eigene Daten werden mit send()
zum Server geschickt. Diese kommen beim Server in der Reihenfolge an, in der sie gesendet werden. Gleiches gilt für die umgekehrte Richtung vom Server aus.
close()
dient zum Schließen der Verbindung.
Mit einer passenden Serverlösung funktioniert dies auch über Port 80 und mit etwas Glück via HTTP-Proxies. Verschlüsselte Verbindungen unterstützen die WebSockets mit wss://...
.
Der Echoserver ist in PHP geschrieben und etwas komplexer geworden als zu Anfang beabsichtigt. Die Veröffentlichung erfolgt daher erst in ein paar Tagen, nach dem ich ihn nochmal gründlich durchgesehen habe.