Maison  >  Article  >  Java  >  Développement Java : comment utiliser WebSocket pour la communication en temps réel

Développement Java : comment utiliser WebSocket pour la communication en temps réel

WBOY
WBOYoriginal
2023-09-21 13:16:55985parcourir

Développement Java : comment utiliser WebSocket pour la communication en temps réel

Développement Java : Comment utiliser WebSocket pour la communication en temps réel

WebSocket est un protocole de communication bidirectionnelle dans les applications Web. Il permet au serveur d'envoyer activement des messages au client pour réaliser des fonctions de communication en temps réel. Dans le développement Java, nous pouvons utiliser certaines bibliothèques open source pour implémenter la communication WebSocket.

Cet article expliquera comment utiliser la bibliothèque javax.websocket en Java pour implémenter la communication WebSocket et fournira des exemples de code spécifiques.

Étape 1 : Introduire les bibliothèques dépendantes
Tout d'abord, nous devons introduire les dépendances des bibliothèques javax.websocket et javax.json dans le projet. Vous pouvez utiliser Maven pour gérer les dépendances, ajoutez le code suivant au pom.

Exemple de code côté serveur :

<dependencies>
  <dependency>
    <groupId>javax.websocket</groupId>
    <artifactId>javax.websocket-api</artifactId>
    <version>1.1</version>
  </dependency>
  <dependency>
    <groupId>org.glassfish.tyrus</groupId>
    <artifactId>tyrus-container-grizzly-client</artifactId>
    <version>1.13</version>
  </dependency>
  <dependency>
    <groupId>javax.json</groupId>
    <artifactId>javax.json-api</artifactId>
    <version>1.1</version>
  </dependency>
  <dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.1</version>
  </dependency>
</dependencies>

Exemple de code côté client :

import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;

@ServerEndpoint("/websocket")
public class WebSocketServer {

    @OnOpen
    public void onOpen(Session session) {
        // 当有客户端连接时触发
        System.out.println("WebSocket连接已建立");
    }

    @OnMessage
    public String onMessage(String message, Session session) {
        // 当收到客户端消息时触发,并向客户端发送消息
        System.out.println("收到客户端消息:" + message);
        return "服务器返回消息:" + message;
    }

    @OnClose
    public void onClose(Session session, CloseReason closeReason) {
        // 当客户端断开连接时触发
        System.out.println("WebSocket连接已关闭");
    }

    @OnError
    public void onError(Throwable error) {
        // 当发生错误时触发
        System.out.println("WebSocket错误:" + error.getMessage());
    }
}

Étape 3 : Démarrez le serveur et le client

Enfin, nous devons démarrer le serveur et le client dans la classe Main.

import javax.websocket.*;
import java.net.URI;

@ClientEndpoint
public class WebSocketClient {

    private Session session;
    private CountDownLatch latch;

    public WebSocketClient() {
        latch = new CountDownLatch(1);
    }

    @OnOpen
    public void onOpen(Session session) {
        // 当连接建立时触发
        System.out.println("WebSocket连接已建立");
        this.session = session;
        latch.countDown();
    }

    public void sendMessage(String message) {
        // 向服务器发送消息
        session.getAsyncRemote().sendText(message);
    }

    @OnMessage
    public void onMessage(String message) {
        // 当收到服务器消息时触发
        System.out.println("收到服务器消息:" + message);
    }

    @OnClose
    public void onClose(Session session, CloseReason closeReason) {
        // 当服务器断开连接时触发
        System.out.println("WebSocket连接已关闭");
    }
    
    @OnError
    public void onError(Throwable error) {
        // 当发生错误时触发
        System.out.println("WebSocket错误:" + error.getMessage());
    }
    
    public void close() throws InterruptedException {
        // 关闭WebSocket连接
        session.close();
        latch.await();
    }
}

Ce qui précède est l'exemple de code pour implémenter la communication WebSocket à l'aide de Java et de la bibliothèque javax.websocket. Grâce à WebSocket, nous pouvons transférer rapidement des messages entre le serveur et le client pour établir une communication en temps réel. WebSocket peut être utilisé pour transmettre des données au client en temps réel, ce qui est très utile dans des scénarios d'application tels que le chat en temps réel et l'affichage de données en temps réel.

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