Maison >Java >javaDidacticiel >WebSockets et communication en temps réel dans la programmation réseau Java

WebSockets et communication en temps réel dans la programmation réseau Java

王林
王林original
2024-05-09 21:42:01550parcourir

WebSocket est un protocole de communication bidirectionnel qui permet une connexion persistante à faible latence entre un client Web et un serveur et est largement utilisé pour créer des applications de communication en temps réel telles que le chat et les jeux en ligne. En Java, vous pouvez utiliser l'API WebSocket ou une bibliothèque tierce telle que Spring WebSocket. L'établissement d'une connexion à l'aide de l'API WebSocket implique les étapes suivantes : établissement d'une connexion HTTP, négociation et mise à niveau vers WebSocket. Un cas d'utilisation courant consiste à créer des applications de discussion multi-joueurs, dans lesquelles le point de terminaison du serveur gère les messages via un servlet et les clients peuvent se connecter au serveur via des objets JavaScript WebSocket et envoyer et recevoir des messages.

Java 网络编程中的 WebSocket 和实时通信

WebSocket et communication en temps réel dans la programmation réseau Java

WebSocket est un protocole de communication bidirectionnel en duplex intégral qui permet des connexions persistantes à faible latence entre les clients Web et les serveurs. Il est largement utilisé pour créer des applications de communication en temps réel telles que le chat, la collaboration en temps réel et les jeux en ligne.

Introduction au protocole WebSocket

WebSocket est un protocole qui s'exécute au-dessus d'un protocole basé sur HTTP (généralement WebSocket). L'établissement d'une connexion WebSocket implique les étapes suivantes :

  1. Établissement d'une connexion HTTP : Le client envoie une requête HTTP GET avec l'en-tête Upgrade: websocket.
  2. Handshake : Le serveur renvoie une réponse 101 Switching Protocols, qui contient la clé WebSocket.
  3. Mise à niveau vers WebSocket : Le client envoie une réponse HTTP avec une clé WebSocket pour passer à une connexion WebSocket.

Utilisation de WebSocket en Java

Pour utiliser WebSocket en Java, vous pouvez exploiter l'API Java WebSocket ou une bibliothèque tierce telle que Spring WebSocket. Cette section explore des exemples d'utilisation de l'API WebSocket.

// 创建 WebSocket 服务器端点
WebSocketServer ws = new WebSocketServer() {

    @Override
    public void onOpen(WebSocket websocket, ClientEndpointConfig cec) {
        System.out.println("客户端已连接");
    }

    @Override
    public void onMessage(String message, WebSocket websocket) {
        System.out.println("收到客户端消息:" + message);
    }

    @Override
    public void onClose(WebSocket websocket) {
        System.out.println("客户端已断开连接");
    }

    @Override
    public void onError(WebSocket websocket, Throwable cause) {
        System.err.println("WebSocket 发生错误:" + cause.getMessage());
    }
};

ws.start();
rrree

Cas pratique : application de chat

En utilisant WebSocket, vous pouvez facilement créer une application de chat multi-personnes. Voici un exemple :

// 创建 WebSocket 客户端端点
WebSocketClient wsClient = new WebSocketClient() {

    @Override
    public void onOpen(ServerEndpointConfig sec) {
        System.out.println("连接到服务器");
    }

    @Override
    public void onMessage(String message, Session session) {
        System.out.println("收到服务器消息:" + message);
    }

    @Override
    public void onClose(Session session, CloseReason closeReason) {
        System.out.println("连接已关闭");
    }

    @Override
    public void onError(Session session, WebSocketError error) {
        System.err.println("WebSocket 发生错误:" + error.getMessage());
    }
};

wsClient.open("ws://localhost:8080/websocket");

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn