WebSocket en Java : bibliothèque Java-WebSocket pour le temps réel

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

WebSocket en Java : bibliothèque Java-WebSocket



Dans le développement web moderne, le besoin de communication bidirectionnelle en temps réel devient de plus en plus crucial. Applications de chat, jeux en ligne, cotations boursières, notifications — tout cela nécessite un transfert instantané de données entre le client et le serveur. Pour Java, l'une des implémentations les plus populaires et fiables du protocole WebSocket est la bibliothèque Java-WebSocket (également connue sous le nom de nv-websocket-client).



Dans cet article, nous allons détailler comment utiliser Java-WebSocket pour créer des applications serveur et client, fournir des exemples de code et examiner les meilleures pratiques.



Qu'est-ce que Java-WebSocket ?



Java-WebSocket est une bibliothèque légère et puissante, open source, implémentant le protocole WebSocket (RFC 6455). Elle permet aux développeurs Java de créer facilement à la fois des serveurs WebSocket et des clients WebSocket sans avoir à plonger dans les détails de bas niveau du protocole.



Principales fonctionnalités de la bibliothèque :

  • Prise en charge complète des côtés serveur et client WebSocket.
  • Prise en charge de WSS (WebSocket Secure) via SSL/TLS.
  • Reconnexion automatique en cas de rupture de connexion.
  • Traitement des messages fragmentés.
  • Prise en charge des extensions personnalisées.
  • API simple basée sur les événements (onOpen, onMessage, onClose, onError).


Installation et configuration



Pour utiliser la bibliothèque, ajoutez la dépendance à votre fichier pom.xml (Maven) :



<dependency>    <groupId>org.java-websocket</groupId>    <artifactId>Java-WebSocket</artifactId>    <version>1.5.4</version></dependency>


Si vous utilisez Gradle :



implementation 'org.java-websocket:Java-WebSocket:1.5.4'


Création d'un serveur WebSocket



Considérons un exemple simple de serveur WebSocket qui reçoit des messages et les renvoie à tous les clients connectés (serveur d'écho) :



import org.java_websocket.WebSocket;import org.java_websocket.handshake.ClientHandshake;import org.java_websocket.server.WebSocketServer;import java.net.InetSocketAddress;import java.util.Set;

public class EchoServer extends WebSocketServer {

public EchoServer(int port) { super(new InetSocketAddress(port)); }

@Override public void onOpen(WebSocket conn, ClientHandshake handshake) { System.out.println("Nouvelle connexion : " + conn.getRemoteSocketAddress()); }

@Override public void onClose(WebSocket conn, int code, String reason, boolean remote) { System.out.println("Déconnexion : " + conn.getRemoteSocketAddress() + " (" + reason + ")"); }

@Override public void onMessage(WebSocket conn, String message) { System.out.println("Message reçu : " + message); // Envoyer le message à tous les clients Set<WebSocket> connections = getConnections(); for (WebSocket client : connections) { client.send("Écho : " + message); } }

@Override public void onError(WebSocket conn, Exception ex) { System.err.println("Erreur : " + ex.getMessage()); if (conn != null) { conn.close(); } }

@Override public void onStart() { System.out.println("Serveur démarré sur le port " + getPort()); }

public static void main(String[] args) { int port = 8887; EchoServer server = new EchoServer(port); server.start(); }}


Ce serveur démarre sur le port 8887 et, à la réception d'un message, le renvoie à tous les clients connectés avec le préfixe "Écho :".



Création d'un client WebSocket



Écrivons maintenant un client qui se connecte à notre serveur

Recommendations