Client WebSocket con java.net.http
Usa il client WebSocket asincrono standard invece di aggiungere una dipendenza di terze parti.
Confronto Codice
✕ 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.
Perché vince l'approccio moderno
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
Supporto JDK
Client WebSocket con java.net.http
Disponibile
Ampiamente disponibile dal JDK 11 (settembre 2018)
Come funziona
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.
Documentazione Correlata
Prova