|
Tijdens de feestdagen heeft de Cheyenne webserver, welke we gebruiken in Syllable Server, een WebSocket-raamwerk gekregen. Cheyenne's auteur, Nenad Rakocevic, heeft in een dag bovenop het UniServe universele netwerk invoer/uitvoersubsysteem, waar Cheyenne op steunt, ondersteuning voor WebSocket ingebouwd. In nog een paar dagen ontwierp hij een origineel WebSocket-raamwerk, welke langdurig open blijvende verbindingen op een efficiƫnte wijze ondersteunt, daarmee het bestaande Cheyenne-raamwerk uitbreidend van de typische HTTP toestandloze aanvraag/antwoordcommunicatie.
WebSocket is een onderdeel van de aankomende HTML5-webstandaarden. Het staat een webbladeraar en een webserver toe om een langdurig open blijvende, twee-wegsverbinding gebruik makende van slechts een TCP-verbinding, aan te maken. Het doet dit door het starten van een normale HTTP-verbinding, om deze dan d.m.v. heronderhandeling om te zetten in zijn meer flexibele onderliggende TCP-verbinding. Dit geeft het goede mogelijkheden om vuurmuren te omzeilen, met als resultaat dat het ons de volledige kracht van het Internet terug geeft. Zo bezien, is het een doorontwikkeling en vervanging van Comet, welke een verzameling van hacks is om Ajax te gebruiken om langdurig open blijvende HTTP-verbindingen aan te maken. WebSocket is een verbetering van Comet omdat het gestandaardiseerd is, veel netter en meer schaalbaar. Het vergt wel uitdrukkelijke ondersteuning door de server en de client. Op dit moment heeft alleen Chrome 4 WebSocket-ondersteuning. Het zit er aan te komen voor Firefox en Safari. Safari is gebaseerd op WebKit, en dat betekent dat we in staat zijn dit over te zetten naar Webster.
We willen dit raamwerk gebruiken in onze Syllable webinfrastruktuur. Het Cheyenne WebSocket-raamwerk is verkrijgbaar in zijn SVN-versie. Een WebSocket echo demotoepassing is hier verkrijgbaar.
Nagekomen:
Er is nu een demo chattoepassing beschikbaar. Onthoud dat je hiervoor een webbladeraar met ondersteuning voor WebSockets nodig hebt, zo als Chrome 4, of een nachtelijke bouwversie van WebKit. Je kunt hier gesprekken m.b.t. Cheyenne volgen.
|