I/O Intermédiaire

Utilisez le client WebSocket asynchrone standard plutôt que d'ajouter une dépendance tierce.

✕ 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);
            }
        });
Un problème avec ce code ? Dites-le nous.
📦

Aucune dépendance supplémentaire

Le client WebSocket est fourni avec le JDK.

🧵

API asynchrone

La connexion et le traitement des messages se composent avec CompletionStage.

🔗

Pile HTTP partagée

La configuration des proxies, de TLS et des executors utilise les mécanismes standard du JDK.

Ancienne Approche
Client WebSocket tiers
Approche Moderne
java.net.http.WebSocket
Depuis JDK
11
Difficulté
Intermédiaire
Clients WebSocket avec java.net.http
Disponible

Largement disponible depuis JDK 11 (septembre 2018)

Le package java.net.http comprend un client WebSocket asynchrone intégré au client HTTP standard. Les connexions sont établies avec CompletableFuture, les callbacks du listener permettent le traitement non bloquant des messages via CompletionStage, et le client partage la configuration standard du JDK pour les proxies, TLS et les executors.