Heim  >  Artikel  >  Java  >  So verwenden Sie Java, um die Trennung und Wiederverbindung von Websockets zu handhaben

So verwenden Sie Java, um die Trennung und Wiederverbindung von Websockets zu handhaben

WBOY
WBOYOriginal
2023-12-17 19:06:331290Durchsuche

So verwenden Sie Java, um die Trennung und Wiederverbindung von Websockets zu handhaben

So verwenden Sie Java, um die Trennung und Wiederherstellung der Websocket-Verbindung zu handhaben

Websocket ist ein TCP-basiertes Protokoll, das verwendet wird, um eine bidirektionale Kommunikation zwischen dem Client und dem Server zu erreichen. In tatsächlichen Anwendungen kann die Verbindung zu Websocket aufgrund einer Netzwerkinstabilität oder eines Serverneustarts unterbrochen werden. Um die Kontinuität der Kommunikation sicherzustellen, müssen wir die Trenn- und Wiederverbindungsfunktion auf dem Client implementieren.

In diesem Artikel wird erläutert, wie Sie mit Java die Trennung und Wiederverbindung von Websockets handhaben, und es werden spezifische Codebeispiele bereitgestellt.

  1. Abhängigkeiten einführen

Zuerst müssen wir Abhängigkeiten von der Java Websocket-Bibliothek einführen. Im Maven-Projekt können wir die folgenden Abhängigkeiten im POM hinzufügen. In dieser Klasse müssen wir Methoden wie onOpen, onClose und onMessage überschreiben, um die Logik des Einrichtens, Trennens und Empfangens von Nachrichten zu handhaben.

<dependencies>
    <dependency>
        <groupId>org.java-websocket</groupId>
        <artifactId>Java-WebSocket</artifactId>
        <version>1.5.1</version>
    </dependency>
</dependencies>
      Erstellen Sie eine Websocket-Client-Instanz
    Bevor wir den Websocket-Client verwenden, müssen wir eine Websocket-Client-Instanz erstellen und die Methode connect aufrufen, um eine Verbindung zum Ziel herzustellen Server.

    import org.java_websocket.client.WebSocketClient;
    import org.java_websocket.handshake.ServerHandshake;
    
    import java.net.URI;
    import java.net.URISyntaxException;
    
    public class MyWebsocketClient extends WebSocketClient {
    
        public MyWebsocketClient(String serverUri) throws URISyntaxException {
            super(new URI(serverUri));
        }
    
        @Override
        public void onOpen(ServerHandshake handshakedata) {
            // 连接建立成功
            System.out.println("Websocket连接已建立");
        }
    
        @Override
        public void onClose(int code, String reason, boolean remote) {
            // 连接断开
            System.out.println("Websocket连接已断开");
            // 进行断线重连
            try {
                this.reconnect();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        @Override
        public void onMessage(String message) {
            // 接收到消息
            System.out.println("Received: " + message);
        }
    }

      WebSocketClient。在该类中,我们需要重写onOpenonCloseonMessage等方法,以处理连接建立、断开和接收消息的逻辑。
      public class Main {
      
          public static void main(String[] args) {
              try {
                  // 创建Websocket客户端实例
                  MyWebsocketClient client = new MyWebsocketClient("ws://localhost:8080/websocket");
      
                  // 连接到服务器
                  client.connect();
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      }
      1. 创建Websocket客户端实例

      在使用Websocket客户端之前,我们需要创建一个Websocket客户端实例,并调用connect方法连接到目标服务器。

      import org.java_websocket.client.WebSocketClient;
      
      import java.net.URI;
      import java.net.URISyntaxException;
      import java.util.Timer;
      import java.util.TimerTask;
      
      public class MyWebsocketClient extends WebSocketClient {
      
          private Timer timer;
          private boolean isConnected;
      
          public MyWebsocketClient(String serverUri) throws URISyntaxException {
              super(new URI(serverUri));
              this.timer = new Timer();
              this.isConnected = false;
          }
      
          @Override
          public void onOpen(ServerHandshake handshakedata) {
              // 连接建立成功
              System.out.println("Websocket连接已建立");
              this.isConnected = true;
          }
      
          @Override
          public void onClose(int code, String reason, boolean remote) {
              // 连接断开
              System.out.println("Websocket连接已断开");
              this.isConnected = false;
              // 进行断线重连
              this.reconnect();
          }
      
          @Override
          public void onMessage(String message) {
              // 接收到消息
              System.out.println("Received: " + message);
          }
      
          private void reconnect() {
              if (!this.isConnected) {
                  this.timer.schedule(new TimerTask() {
                      @Override
                      public void run() {
                          try {
                              // 重新连接
                              MyWebsocketClient.this.reconnect();
                              // 连接到服务器
                              MyWebsocketClient.this.connect();
                          } catch (Exception e) {
                              e.printStackTrace();
                          }
                      }
                  }, 5000);
              }
          }
      }
      
      public class Main {
      
          public static void main(String[] args) {
              try {
                  // 创建Websocket客户端实例
                  MyWebsocketClient client = new MyWebsocketClient("ws://localhost:8080/websocket");
      
                  // 连接到服务器
                  client.connect();
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      }
      1. 实现断线重连机制

      在上述代码中,我们在onClose方法中调用reconnectTrennungs- und Wiederverbindungsmechanismus realisieren

      Im obigen Code rufen wir die Methode reconnect in der Methode onClose auf, um die Trennung zu implementieren Wiederverbindung. Hier können wir geplante Aufgaben nutzen, um regelmäßig wieder eine Verbindung zum Server herzustellen. 🎜rrreee🎜Durch die obigen Codebeispiele haben wir den Verbindungs- und Wiederverbindungsverarbeitungsmechanismus von Websocket in Java implementiert. Wenn die Websocket-Verbindung getrennt wird, wird automatisch versucht, die Verbindung zum Server wiederherzustellen, um die Kommunikationskontinuität aufrechtzuerhalten. 🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Java, um die Trennung und Wiederverbindung von Websockets zu handhaben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn