Skip to the content.

🐱 Node.js

WebSocket

Il n’est pas rare qu’en tant que Junior ou nouveau venu, une de nos idĂ©es soit la rĂ©alisation d’une application utilisant du temps rĂ©el par le biais des WebSockets (que ce soit pour un tchat, un jeu ou autres).

Bien souvent tout le monde aura le rĂ©flexe de dĂ©buter avec la librairie socket.io (ce que j’ai moi-mĂȘme fait) qui est plutĂŽt accessible pour les dĂ©butants et vous apporte un tas de fonctionnalitĂ©s cool comme les rooms.

NĂ©anmoins, maintenant avec mon expĂ©rience, je vous recommanderais aussi de prendre sĂ©rieusement en considĂ©ration le fait de ne pas utiliser directement socket.io qui va vous abstraire bon nombre d’élĂ©ments et qui peut parfois vous empĂȘcher de mieux comprendre diffĂ©rents fondamentaux (ou de profiter de fonctionnalitĂ©s natives).

C’est aussi je pense un excellent entraĂźnement (si vous en ĂȘtes capable alors socket.io ce sera un camp de vacances Ă  cĂŽtĂ©).

Bref n’hĂ©sitez pas Ă  vous intĂ©resser Ă  l’API native WebSockets du navigateur (et le package npm WebSockets pour le back-end). Vous pouvez aussi vous intĂ©resser Ă  gRPC qui utilisera notamment protocol buffers pour les messages (plus technique mais ça fait tout de suite moins tĂąche sur votre CV).

Si votre besoin nĂ©cessite de trĂšs haute performance je vous recommande de jeter un Ɠil Ă  uWebSockets (qui possĂšde un systĂšme de room minimaliste aussi).

Faite nĂ©anmoins attention Ă  la mentalitĂ© abrasive du mainteneur (il n'est pas connu pour ĂȘtre un enfant de chƓur et il peut ĂȘtre parfois assez mĂ©chant).

Resources complémentaires (articles, videos, talks)


âŹ…ïž 🐱 Node.js: Modules (CJS & ESM) | âžĄïž 🐱 📊 Test unitaire et coverage