From 11ac5e9b1d389d4e0777e15f4d51bca0649f874d Mon Sep 17 00:00:00 2001 From: gubaojian Date: Mon, 9 Jun 2025 15:28:06 +0800 Subject: [PATCH 1/3] improve write performance by by buffer out stream --- .../org/java_websocket/client/WebSocketClient.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/java_websocket/client/WebSocketClient.java b/src/main/java/org/java_websocket/client/WebSocketClient.java index 0e38326d..0741f7da 100644 --- a/src/main/java/org/java_websocket/client/WebSocketClient.java +++ b/src/main/java/org/java_websocket/client/WebSocketClient.java @@ -28,6 +28,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.io.BufferedOutputStream; import java.lang.reflect.InvocationTargetException; import java.net.InetAddress; import java.net.InetSocketAddress; @@ -850,17 +851,20 @@ public void run() { * @throws IOException if write or flush did not work */ private void runWriteData() throws IOException { + BufferedOutputStream bufferedInputStream = new BufferedOutputStream(ostream); try { while (!Thread.interrupted()) { ByteBuffer buffer = engine.outQueue.take(); - ostream.write(buffer.array(), 0, buffer.limit()); - ostream.flush(); + bufferedInputStream.write(buffer.array(), 0, buffer.limit()); + if(engine.outQueue.isEmpty()) { + bufferedInputStream.flush(); + } } } catch (InterruptedException e) { for (ByteBuffer buffer : engine.outQueue) { - ostream.write(buffer.array(), 0, buffer.limit()); - ostream.flush(); + bufferedInputStream.write(buffer.array(), 0, buffer.limit()); } + bufferedInputStream.flush(); Thread.currentThread().interrupt(); } } From 82d75d9f7c70d26d39cfd0f4db6fac564ceba743 Mon Sep 17 00:00:00 2001 From: gubaojian Date: Mon, 9 Jun 2025 15:42:34 +0800 Subject: [PATCH 2/3] code style improve --- src/main/java/org/java_websocket/client/WebSocketClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/java_websocket/client/WebSocketClient.java b/src/main/java/org/java_websocket/client/WebSocketClient.java index 0741f7da..5c2d2ab4 100644 --- a/src/main/java/org/java_websocket/client/WebSocketClient.java +++ b/src/main/java/org/java_websocket/client/WebSocketClient.java @@ -25,10 +25,10 @@ package org.java_websocket.client; +import java.io.BufferedOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.io.BufferedOutputStream; import java.lang.reflect.InvocationTargetException; import java.net.InetAddress; import java.net.InetSocketAddress; @@ -856,7 +856,7 @@ private void runWriteData() throws IOException { while (!Thread.interrupted()) { ByteBuffer buffer = engine.outQueue.take(); bufferedInputStream.write(buffer.array(), 0, buffer.limit()); - if(engine.outQueue.isEmpty()) { + if (engine.outQueue.isEmpty()) { bufferedInputStream.flush(); } } From dc8f06db6034d8592e4a3ddbca4c34230dfa59a9 Mon Sep 17 00:00:00 2001 From: gubaojian Date: Mon, 9 Jun 2025 15:45:47 +0800 Subject: [PATCH 3/3] code style imrove --- src/main/java/org/java_websocket/client/WebSocketClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/java_websocket/client/WebSocketClient.java b/src/main/java/org/java_websocket/client/WebSocketClient.java index 5c2d2ab4..45e81e3f 100644 --- a/src/main/java/org/java_websocket/client/WebSocketClient.java +++ b/src/main/java/org/java_websocket/client/WebSocketClient.java @@ -857,7 +857,7 @@ private void runWriteData() throws IOException { ByteBuffer buffer = engine.outQueue.take(); bufferedInputStream.write(buffer.array(), 0, buffer.limit()); if (engine.outQueue.isEmpty()) { - bufferedInputStream.flush(); + bufferedInputStream.flush(); } } } catch (InterruptedException e) {