Programmation réseau en JavaScript : des sockets à WebSocket

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Pourquoi JavaScript dans la programmation réseau ?

Autrefois, JavaScript n'était qu'un langage pour animer des boutons et valider des formulaires. Aujourd'hui, c'est un outil extrêmement puissant pour créer des applications réseau. La programmation réseau en JavaScript ouvre les portes du temps réel : chats, jeux en ligne, streaming de données, systèmes de surveillance et même vos propres serveurs web.

Dans cet article, nous n'allons pas réécrire la documentation de manière ennuyeuse. Nous allons passer d'une simple requête HTTP à une connexion WebSocket complète. Vous verrez comment Node.js transforme un langage de navigateur en un puissant moteur réseau. Prêts ? C'est parti !



Les bases : HTTP et les modules Node.js

Toute programmation réseau en JavaScript commence par la compréhension des protocoles. Le plus populaire est HTTP. Dans le navigateur, vous utilisez fetch() ou XMLHttpRequest, mais la partie serveur nécessite une approche différente.



Création d'un serveur HTTP simple

Node.js fournit le module intégré http. Voici un exemple minimal qui répond "Bonjour le monde !" à toute requête :

const http = require('http');

const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Bonjour le monde ! La programmation réseau en JavaScript fonctionne !');});

server.listen(3000, '127.0.0.1', () => { console.log('Serveur démarré sur http://127.0.0.1:3000/');});

Exécutez ce code avec node server.js et ouvrez votre navigateur. Vous verrez notre message. Simple, non ? Mais ce n'est que le début. La vraie magie commence lorsque nous travaillons avec les sockets.



Travail avec les sockets TCP en JavaScript

HTTP est un protocole de couche application construit sur TCP. Si vous avez besoin d'un contrôle total sur le transfert de données, utilisez les sockets JavaScript. Dans Node.js, le module net est responsable de cela.



Serveur TCP : réception de données

Imaginez que vous écrivez un simple serveur d'écho. Le client se connecte, envoie un message, le serveur le renvoie. Voici à quoi cela ressemble :

const net = require('net');

const server = net.createServer((socket) => { console.log('Client connecté');

socket.on('data', (data) => { console.log('Reçu :', data.toString()); socket.write('Écho : ' + data.toString()); });

socket.on('end', () => { console.log('Client déconnecté'); });});

server.listen(8080, () => { console.log('Serveur TCP écoute sur le port 8080');});

Maintenant, écrivons un client pour ce serveur. Le client-serveur en JavaScript est un mouvement bidirectionnel :

const net = require('net');

const client = net.createConnection({ port: 8080 }, () => { console.log('Connecté au serveur'); client.write('Bonjour, serveur !');});

client.on('data', (data) => { console.log('Réponse du serveur :', data.toString()); client.end();});

client.on('end', () => { console.log('Déconnecté du serveur');});

Lancez d'abord le serveur, puis le client. Vous verrez les données voyager dans les deux sens. C'est la base de tous les protocoles réseau JavaScript.



WebSocket : le temps réel sans latence

HTTP et TCP sont bons, mais ils ont un problème : pour obtenir de nouvelles données, le client doit constamment faire des requêtes (polling). Ce n'est pas efficace. WebSocket en JavaScript résout ce problème : une fois la connexion établie, le serveur peut lui-même envoyer des données à tout moment.



WebSocket sur Node.js (bibliothèque ws)

Installez la bibliothèque : npm install ws

Serveur :

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8081 });

wss.on('connection', (ws) => { console.log('Client WebSocket connecté');

ws.on('message', (message) => { console.log('Reçu :',

Blogs

Book Recommendations