Socket.IO

Compétence
Intérêt

Socket.io est la lib socket la plus populaire dans Node.js. Elle est utilisée par de nombreux services qui nécessitent des fonctionnalités en temps réel comme des notifications push, des jeux et mise à jour de contenu en temps réel.

Dans la v0.9 de Socket.io, il existait de sérieux bugs et fuites de mémoire. Ces bugs sont restés présent pendant plusieurs mois. Pour des petits / moyens projets, les conséquences n'étaient pas visibles immédiatement. Cependant lorsqu'on arrivait à des pics de plusieurs centaines de connectés simultanés (600 / 800), les erreurs commençaient à apparaître et la fuite de mémoire devenait le goulot d'étranglement qui faisaient ralentir, voir planter le service.

Depuis la v1 de Socket.io qui est une abstraction au dessus d'Engine.io, nombre de ces bugs ont été corrigés.

Cependant le manque de réactivité à corriger ces bugs a donné naissance à une alternative, il s'agit de Primus.

Primus fournit les mêmes fonctionnalités que Socket.io (parfois via des plugins) et affiche d'excellentes performances. Le projet est activement maintenu, la réactivité des développeurs derrière Primus font de cette lib mon choix prioritaire.

Donc j'utilise de préférence Primus pour les raisons évoquées ci-dessus. Toutefois si je suis amené à utiliser Socket.io dans un projet client, ça reste tout de même un plaisir de coder avec.