2. Websocket protocole
• Protocole de Couche Application (OSI*)
• Défini par la RFC* 6455 (IETF)
• Communication Full-Duplex basé sur TCP*
• Optimise les échanges C/S
• Traverse les Proxy*
2
3. Flow Graph [C / S]
CLIENT (Navigateur) SERVEUR
Handshake (HTTP upgrade)
Connexion ouverte
Connexion fermé
Fermeture du canal par un des processus
Communication FullDuplex
Connexion persistent
HTTP session établis
TCP connexion établis
3
4. Flow Graph [C / S / C]
CLIENT 1 SERVEUR CLIENT 2
TCP connexion établis TCP connexion établis
HTTP session établis
HTTP session établis
Handshake (HTTP upgrade)
Connexion ouverte
Handshake (HTTP upgrade)
Connexion ouverte
Connexion fermé
Fermeture du canal par un des processus
Connexion fermé
Fermeture du canal par un des processus
Messages 4
6. Implémentation
• GNU WebSocket4J, une implémentation du protocole WebSocket en Java.
• Apache WebSocket module3, une implémentation en langage C sous la
forme d'une extension pour le serveur httpd Apache (mod_websocket).
• pywebsocket4, une implémentation en Python sous la forme d'une
extension pour le serveur httpd Apache (mod_pywebsocket).
• jWebSocket, implémentation Java côté serveur et JavaScript/HTML5 côté
client5.
• APE Project, support du protocole WebSocket (-hixie-75, -hixie-76, -hybi-
ietf-06, -hybi-ietf-07)6.
• QtWebsocket, une implémentation client et serveur du protocole
Websocket en C++ (nécessite le framework Qt).
• phpwebsocket, implémentation PHP côté serveur et PHP/HTML5 côté
client7.
• Pusher, implémentation sous forme d'API compatible avec la plupart des
langages et sous forme d'un service gratuit et payant.
• SignalR, implementation pour ASP.NET en C#.
6
7. Glossaire
• Modèle OSI (Open Systems Interconnection): Interconnexion des systèmes ouverts, Standard
de communication en réseau pour les systèmes informatiques.
• RFC (Request For Comments): Séries numéroté de documents officiels décrivant les aspects
techniques d’internet ou de matériels informatique publié par l’IETF (Internet Engineering
Task Force).
• TCP (Transmission Control Protocol): Protocole de couche 4 (Modèle OSI) fiable, en mode
connecté, documenté dans la RFC 793.
• Proxy: Un proxy est un composant logiciel informatique qui joue le rôle d'intermédiaire en se
plaçant entre deux autres pour faciliter ou surveiller leurs échanges. Il est équivalent à un par
feu de niveau application (Modèle OSI).
• API (Application Programming Interface): Interface de programmation, logiciels offrant un
ensemble normalisé de classes, de méthodes, ou de fonctions destiné à d’autres logiciels.
7