I/O Orta

java.net.http ile WebSocket istemcileri

Üçüncü taraf bağımlılığı eklemek yerine standart asenkron WebSocket istemcisini kullanın.

✕ Third-party library
WebSocketClient client =
    new WebSocketClient(serverUri) {
        @Override
        public void onMessage(String message) {
            handle(message);
        }
    };
client.connect();
✓ Java 11+
HttpClient.newHttpClient()
    .newWebSocketBuilder()
    .buildAsync(serverUri,
        new WebSocket.Listener() {
            @Override
            public CompletionStage<?> onText(
                    WebSocket socket,
                    CharSequence data,
                    boolean last) {
                handle(data.toString());
                return WebSocket.Listener.super
                    .onText(socket, data, last);
            }
        });
Bu kodda bir sorun mu gördünüz? Bize bildirin.
📦

Ek bağımlılık yok

WebSocket istemcisi JDK ile birlikte gelir.

🧵

Asenkron API

Bağlantı ve mesaj işleme CompletionStage ile birleştirilebilir.

🔗

Paylaşılan HTTP yığını

Proxy, TLS ve executor yapılandırması standart JDK olanaklarını kullanır.

Eski Yaklaşım
Üçüncü taraf WebSocket istemcisi
Modern Yaklaşım
java.net.http.WebSocket
JDK'dan itibaren
11
Zorluk
Orta
java.net.http ile WebSocket istemcileri
Mevcut

JDK 11'den (Eylül 2018) itibaren geniş çapta kullanılabilir

java.net.http paketi, standart HTTP istemcisiyle tümleşik asenkron bir WebSocket istemcisi içerir. Bağlantılar CompletableFuture ile kurulur, listener callback'leri CompletionStage aracılığıyla bloklamayan mesaj işlemeyi destekler ve istemci JDK'nın standart proxy, TLS ve executor yapılandırmasını paylaşır.