I/O Intermedio

Usa il client WebSocket asincrono standard invece di aggiungere una dipendenza di terze parti.

✕ 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);
            }
        });
Vedi un problema con questo codice? Faccelo sapere.
📦

Nessuna dipendenza aggiuntiva

Il client WebSocket è incluso nel JDK.

🧵

API asincrona

La connessione e la gestione dei messaggi si compongono con CompletionStage.

🔗

Stack HTTP condiviso

Le configurazioni di proxy, TLS ed executor usano le funzionalità standard del JDK.

Approccio Vecchio
Client WebSocket di terze parti
Approccio Moderno
java.net.http.WebSocket
Dal JDK
11
Difficoltà
Intermedio
Client WebSocket con java.net.http
Disponibile

Ampiamente disponibile dal JDK 11 (settembre 2018)

Il package java.net.http include un client WebSocket asincrono integrato con il client HTTP standard. Le connessioni vengono stabilite con CompletableFuture, le callback dei listener supportano l'elaborazione non bloccante dei messaggi tramite CompletionStage e il client condivide la configurazione standard del JDK per proxy, TLS ed executor.