Socket.IO
Plus d'infos
- Type
- Bibliothèque de communication en temps réel
- Année
- 2010
- Créé par
- Guillermo Rauch
- Licence
- MIT
Des événements en temps réel entre le navigateur et Node — pas du WebSocket, mais un protocole à part qui utilise WebSocket quand il le peut.
Guillermo Rauch l'a publié en 2010, à une époque où la prise en charge de WebSocket dans les navigateurs était récente, inégale et régulièrement sabotée par les proxys d'entreprise. La réponse a été une couche d'abstraction : la bibliothèque négocie le meilleur transport disponible et se rabat sur le long polling HTTP quand il le faut, avec reconnexion automatique et mise en tampon des messages pendant la coupure.
Par-dessus viennent des commodités que WebSocket brut n'offre pas — événements nommés, salles (rooms), espaces de noms (namespaces) et callbacks d'acquittement. Le prix à payer : c'est un protocole à part entière. Un serveur Socket.IO ne peut pas dialoguer avec un client WebSocket ordinaire, et les changements de version majeure ont cassé la compatibilité sur le réseau plus d'une fois. La prise en charge par les navigateurs est universelle depuis plus de dix ans : le choix porte donc sur les fonctionnalités, non sur le mécanisme de repli.