From 014f7d36d7fda9c2b2f9d1a119c95fe9b21768e1 Mon Sep 17 00:00:00 2001 From: Xu Wang <59418106+xwang1498@users.noreply.github.com> Date: Sun, 13 Sep 2026 18:00:35 -0400 Subject: [PATCH] fix(okhttp): complete the close handshake when the server closes the websocket The OkHttp engine never implemented onClosing, so a server-initiated close was left half-open and the transport only noticed when its idle timer fired. --- .../main/java/io/ably/lib/network/OkHttpWebSocketClient.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/network-client-okhttp/src/main/java/io/ably/lib/network/OkHttpWebSocketClient.java b/network-client-okhttp/src/main/java/io/ably/lib/network/OkHttpWebSocketClient.java index 7341eb71a..bcaaf1c1d 100644 --- a/network-client-okhttp/src/main/java/io/ably/lib/network/OkHttpWebSocketClient.java +++ b/network-client-okhttp/src/main/java/io/ably/lib/network/OkHttpWebSocketClient.java @@ -59,6 +59,11 @@ private WebSocketHandler(WebSocketListener listener) { this.listener = listener; } + @Override + public void onClosing(WebSocket webSocket, int code, String reason) { + webSocket.close(1000, null); + } + @Override public void onClosed(WebSocket webSocket, int code, String reason) { listener.onClose(code, reason);