首頁 >Java >java教程 >使用Java 13中的新的HttpClient發送WebSocket請求和處理回應

使用Java 13中的新的HttpClient發送WebSocket請求和處理回應

王林
王林原創
2023-07-29 12:27:231514瀏覽

使用Java 13中的新的HttpClient發送WebSocket請求和處理回應

#隨著Java 11的發布,Java平台開始支援原生的WebSocket API。然而,在Java 13中,新的HttpClient API提供了更簡單、更易於使用的方式來傳送和處理WebSocket請求。在本篇文章中,我們將學習如何使用Java 13中的新的HttpClient發送WebSocket請求和處理回應。

首先,我們需要建立一個WebSocket連線。在Java 13中,我們可以使用HttpClient類別的newWebSocketBuilder()方法來建立WebSocket連線。以下是建立WebSocket連接的程式碼範例:

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.WebSocket;
import java.net.http.WebSocket.Builder;

public class WebSocketClient {
    public static void main(String[] args) {
        HttpClient client = HttpClient.newHttpClient();
        WebSocket.Builder builder = client.newWebSocketBuilder();

        // 设置WebSocket服务器的URI
        URI uri = URI.create("ws://localhost:8080/websocket");

        // 创建WebSocket连接
        WebSocket ws = builder.buildAsync(uri, new WebSocketListener()).join();

        // 发送消息到WebSocket服务器
        ws.sendText("Hello, WebSocket!");

        // 关闭WebSocket连接
        ws.sendClose(WebSocket.NORMAL_CLOSURE, "Done");
    }

    static class WebSocketListener implements WebSocket.Listener {
        @Override
        public void onOpen(WebSocket webSocket) {
            System.out.println("Connected to server");
        }

        @Override
        public CompletionStage<?> onText(WebSocket webSocket, CharSequence data, boolean last) {
            System.out.println("Received message: " + data);
            return null;
        }

        @Override
        public CompletionStage<?> onClose(WebSocket webSocket, int statusCode, String reason) {
            System.out.println("Closed: " + statusCode + " " + reason);
            return null;
        }

        @Override
        public void onError(WebSocket webSocket, Throwable error) {
            System.out.println("Error: " + error.getMessage());
        }
    }
}

在上面的程式碼中,我們首先建立了一個HttpClient對象,並呼叫newWebSocketBuilder()方法建立了一個Builder物件。然後,我們設定WebSocket伺服器的URI,並使用buildAsync()方法建立了一個WebSocket物件。接下來,我們使用sendText()方法發送一條文字訊息到WebSocket伺服器。最後,我們使用sendClose()方法關閉WebSocket連線。

WebSocketListener類別中,我們實作了WebSocket.Listener介面來處理WebSocket的事件。 onOpen()方法在WebSocket連接打開時被調用,onText()方法在接收到文字訊息時被調用,onClose()方法在WebSocket連接關閉時被調用,onError()方法在發生錯誤時被調用。

現在,我們已經學會如何使用Java 13中的新的HttpClient發送WebSocket請求和處理回應。讓我們來編譯並運行上面的程式碼,看看它的運行結果。

總結:

在本篇文章中,我們學習如何使用Java 13中的新的HttpClient發送WebSocket請求和處理回應。透過使用newWebSocketBuilder()方法建立WebSocket連接,並實作WebSocket.Listener介面來處理WebSocket的事件,我們可以輕鬆地傳送和接收WebSocket訊息。希望這篇文章對你理解Java 13中的新的HttpClient的WebSocket功能有所幫助。

以上是使用Java 13中的新的HttpClient發送WebSocket請求和處理回應的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn