Les WebSockets ont révolutionné la communication en temps réel sur le web, permettant des canaux de communication bidirectionnels et full-duplex via une seule connexion TCP. Avec Node.js, un environnement d'exécution JavaScript puissant, exploiter les capacités des WebSockets devient encore plus accessible et efficace.
Dans ce guide, nous allons parcourir le processus d'intégration et d'utilisation des WebSockets dans Node.js.
Qu'est-ce que WebSocket ?
Avant de plonger dans l'implémentation, il est crucial de comprendre ce que sont les WebSockets et en quoi ils diffèrent des requêtes HTTP traditionnelles. Contrairement à HTTP, qui suit un modèle requête-réponse, les WebSockets fournissent des connexions persistantes entre les clients et les serveurs, permettant un échange de données en temps réel et à faible latence.
Cela les rend idéaux pour les applications nécessitant des mises à jour instantanées, telles que les applications de chat, les jeux multijoueurs et les outils collaboratifs.

Cas d'utilisation de WebSocket
WebSocket est particulièrement pertinent dans les scénarios suivants :
- Systèmes de notification en temps réel : Notifiez instantanément les clients lorsque de nouvelles données sont disponibles sur le serveur.
- Chat en ligne : Créez des applications de chat en temps réel pour permettre une communication instantanée entre les utilisateurs.
- Outils de collaboration en temps réel : Utilisez-les pour le partage de documents en temps réel, l'édition graphique ou d'autres travaux collaboratifs.
- Jeux en ligne : Permettez une interaction et une synchronisation en temps réel entre les joueurs.
- Systèmes de surveillance en temps réel : Surveillez l'état du système et notifiez instantanément les administrateurs.
Configuration d'un projet Node.js
Pour commencer, assurez-vous que Node.js est installé sur votre système. Vous pouvez vérifier votre installation en exécutant node -v
dans votre terminal.

Une fois confirmé, créez un nouveau répertoire pour votre projet et naviguez-y.
mkdir websocket-example
cd websocket-example
Initialisez un nouveau projet Node.js en utilisant npm :
npm init -y
Cette commande crée un fichier package.json
avec les paramètres par défaut. Ensuite, installez le package ws
, une bibliothèque WebSocket populaire pour Node.js :
npm install ws
Implémentation d'un serveur WebSocket
Avec le projet configuré, créons un serveur WebSocket en utilisant la bibliothèque ws
. Créez un nouveau fichier nommé server.js
dans le répertoire de votre projet et ajoutez le code suivant :
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {console.log('A new client connected.');
ws.on('message', function incoming(message) {console.log('Received: %s', message);
});
ws.send('Welcome to the WebSocket server!');
});
Ce code initialise un serveur WebSocket sur le port 8080
et écoute les connexions entrantes. Lors de la connexion, il enregistre un message et configure un écouteur d'événements pour les messages entrants. Il envoie également un message de bienvenue au client.
Création d'un client WebSocket
Maintenant, créons un simple client WebSocket pour nous connecter à notre serveur. Créez un nouveau fichier nommé client.js
dans le répertoire du projet et ajoutez le code suivant :
const WebSocket = require('ws');
const ws = new WebSocket('ws://localhost:8080');
ws.on('open', function open() {console.log('Connected to the server.');
});
ws.on('message', function incoming(data) {console.log('Received from server: %s', data);
});
Ce code établit une connexion WebSocket à ws://``localhost:8080
et enregistre un message lors de la connexion réussie. Il configure également un écouteur d'événements pour recevoir des messages du serveur.
Exécution de l'application
Avant d'exécuter l'application, assurez-vous que le serveur WebSocket (server.js) est en cours d'exécution. Vous pouvez le démarrer en exécutant :
node server.js
Une fois le serveur en cours d'exécution, exécutez le script client (client.js) dans une autre fenêtre de terminal :
node client.js
Vous devriez voir des messages indiquant des connexions réussies du serveur et du client.
Apidog : Rationalisation des tests d'API WebSocket

Au lieu de Node.js, envisagez d'utiliser Apidog, un excellent outil similaire à Postman pour les tests d'API polyvalents. Apidog prend en charge les tests d'API WebSocket, offrant des interfaces conviviales pour la création, la gestion et le test des API WebSocket.