I/O Intermedio

Usa el cliente WebSocket asíncrono estándar en lugar de añadir una dependencia de terceros.

✕ 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);
            }
        });
¿Ves un problema con este código? Cuéntanos.
📦

Sin dependencias adicionales

El cliente WebSocket se incluye en el JDK.

🧵

API asíncrona

La conexión y el manejo de mensajes se componen con CompletionStage.

🔗

Pila HTTP compartida

La configuración de proxy, TLS y executor usa las capacidades estándar del JDK.

Enfoque Antiguo
Cliente WebSocket de terceros
Enfoque Moderno
java.net.http.WebSocket
Desde JDK
11
Dificultad
Intermedio
Clientes WebSocket con java.net.http
Disponible

Ampliamente disponible desde JDK 11 (septiembre de 2018)

El paquete java.net.http incluye un cliente WebSocket asíncrono integrado con el cliente HTTP estándar. Las conexiones se establecen con CompletableFuture, los callbacks del listener permiten procesar mensajes sin bloqueos mediante CompletionStage y el cliente comparte la configuración estándar de proxy, TLS y executor del JDK.