Les WebSockets fournissent un canal de communication en duplex intégral sur une connexion unique de longue durée, permettant une communication en temps réel entre un client (généralement un navigateur Web) et un serveur. Voici un aperçu de base de la façon dont vous pouvez utiliser les WebSockets en HTML5 :
API WebSocket : L'API WebSocket est prise en charge dans la plupart des navigateurs modernes. Pour établir une connexion WebSocket, vous pouvez utiliser l'objet WebSocket
en JavaScript.
javascript // Create a WebSocket instance
const socket = new WebSocket('ws://example.com/socket');
// Event handlers
socket.onopen = function(event) {
console.log('WebSocket connection opened:', event);
};
socket.onmessage = function(event) {
console.log('Received message:', event.data);
};
socket.onclose = function(event) {
console.log('WebSocket connection closed:', event);
};
// Send a message
socket.send('Hello, server!');
Implémentation du serveur : vous avez besoin d'un serveur prenant en charge la communication WebSocket. Les choix courants incluent Node.js avec des bibliothèques comme ws
ou l'utilisation de frameworks comme Socket.IO.
Exemple utilisant Node.js et la bibliothèque ws
:
javascript const WebSocket = require('ws');
const server = new WebSocket.Server({ port: 3000 });
server.on('connection', (socket) => {
console.log('Client connected');
// Handle messages from clients
socket.on('message', (message) => {
console.log('Received:', message);
// Send a response
socket.send('Hello, client!');
});
// Handle the connection closing
socket.on('close', () => {
console.log('Client disconnected');
});
});
Connexion sécurisée (WSS) : pour des raisons de sécurité, vous devez utiliser wss
(WebSocket Secure) au lieu de ws
si votre site Web utilise HTTPS. Cela garantit une communication cryptée.
javascriptconst socket = new WebSocket('wss://example.com/socket');
Gestion des erreurs : implémentez la gestion des erreurs pour gérer les situations inattendues.
javascript socket.onerror = function(error) {
console.error('WebSocket error:', error);
};
Diffusion : les serveurs peuvent diffuser des messages à tous les clients connectés.
javascript // Inside the server connection handler
server.clients.forEach((client) => {
if (client.readyState === WebSocket.OPEN) {
client.send('Broadcast message to all clients');
}
});
Fermer la connexion : vous pouvez fermer la connexion WebSocket à partir du client ou du serveur.
javascript // Close the connection from the client
socket.close();
// Close the connection from the server
// Inside the server connection handler
socket.close();
Ce ne sont que des exemples de base pour vous aider à démarrer. En fonction de votre cas d'utilisation spécifique, vous devrez peut-être implémenter davantage de fonctionnalités telles que l'authentification, la gestion de différents types de messages et la gestion des échecs de connexion.