java.net.http ile WebSocket istemcileri
Üçüncü taraf bağımlılığı eklemek yerine standart asenkron WebSocket istemcisini kullanın.
Kod Karşılaştırması
✕ 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);
}
});
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Ek bağımlılık yok
WebSocket istemcisi JDK ile birlikte gelir.
Asenkron API
Bağlantı ve mesaj işleme CompletionStage ile birleştirilebilir.
Paylaşılan HTTP yığını
Proxy, TLS ve executor yapılandırması standart JDK olanaklarını kullanır.
Eski Yaklaşım
Üçüncü taraf WebSocket istemcisi
Modern Yaklaşım
java.net.http.WebSocket
JDK'dan itibaren
11
Zorluk
Orta
JDK Desteği
java.net.http ile WebSocket istemcileri
Mevcut
JDK 11'den (Eylül 2018) itibaren geniş çapta kullanılabilir
Nasıl çalışır
java.net.http paketi, standart HTTP istemcisiyle tümleşik asenkron bir WebSocket istemcisi içerir. Bağlantılar CompletableFuture ile kurulur, listener callback'leri CompletionStage aracılığıyla bloklamayan mesaj işlemeyi destekler ve istemci JDK'nın standart proxy, TLS ve executor yapılandırmasını paylaşır.
İlgili Belgeler
Kanıt