I/O Intermediário

Use o cliente WebSocket assíncrono padrão em vez de adicionar uma dependência de terceiros.

✕ 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);
            }
        });
Viu um problema com este código? Nos avise.
📦

Sem dependência extra

O cliente WebSocket acompanha o JDK.

🧵

API assíncrona

O tratamento da conexão e das mensagens pode ser composto com CompletionStage.

🔗

Stack HTTP compartilhada

As configurações de proxy, TLS e executor usam recursos padrão do JDK.

Abordagem Antiga
Cliente WebSocket de terceiros
Abordagem Moderna
java.net.http.WebSocket
Desde o JDK
11
Dificuldade
Intermediário
Clientes WebSocket com java.net.http
Disponível

Amplamente disponível desde o JDK 11 (setembro de 2018)

O pacote java.net.http inclui um cliente WebSocket assíncrono integrado ao cliente HTTP padrão. As conexões são estabelecidas com CompletableFuture, callbacks de listener permitem processamento não bloqueante de mensagens por meio de CompletionStage e o cliente compartilha as configurações padrão de proxy, TLS e executor do JDK.