I/O মধ্যম

তৃতীয়-পক্ষের dependency যোগ করার পরিবর্তে standard asynchronous WebSocket client ব্যবহার করুন।

✕ 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);
            }
        });
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
📦

অতিরিক্ত dependency নেই

WebSocket client-টি JDK-এর সঙ্গেই আসে।

🧵

Asynchronous API

Connection এবং message handling CompletionStage-এর সঙ্গে compose করা যায়।

🔗

শেয়ারড HTTP stack

Proxy, TLS এবং executor configuration standard JDK facility ব্যবহার করে।

পুরনো পদ্ধতি
তৃতীয়-পক্ষের WebSocket client
আধুনিক পদ্ধতি
java.net.http.WebSocket
JDK থেকে
11
কঠিনতা
মধ্যম
java.net.http দিয়ে WebSocket client
উপলব্ধ

JDK 11 (সেপ্টেম্বর 2018) থেকে ব্যাপকভাবে উপলব্ধ

java.net.http প্যাকেজে standard HTTP client-এর সঙ্গে সমন্বিত একটি asynchronous WebSocket client রয়েছে। CompletableFuture দিয়ে connection স্থাপন করা হয়, listener callback CompletionStage-এর মাধ্যমে non-blocking message processing সমর্থন করে এবং client-টি JDK-এর standard proxy, TLS ও executor configuration শেয়ার করে।