diff --git a/src/main/java/org/redkale/net/http/WebSocket.java b/src/main/java/org/redkale/net/http/WebSocket.java index 6d84b9cde..38ec4f50a 100644 --- a/src/main/java/org/redkale/net/http/WebSocket.java +++ b/src/main/java/org/redkale/net/http/WebSocket.java @@ -273,23 +273,13 @@ public abstract class WebSocket { * @return 0表示成功, 非0表示错误码 */ CompletableFuture sendPacket(WebSocketPacket packet) { - if (this._readHandler == null) { // if (this._writeIOThread == null) { + if (this._readHandler == null) { if (delayPackets == null) { delayPackets = new ArrayList<>(); } delayPackets.add(packet); return CompletableFuture.completedFuture(RETCODE_DELAYSEND); } - return _sendToChannel(packet); - } - - /** - * 给自身发送消息体, 包含二进制/文本 - * - * @param packet WebSocketPacket - * @return 0表示成功, 非0表示错误码 - */ - CompletableFuture _sendToChannel(WebSocketPacket packet) { if (_channel == null || closed.get()) { return CompletableFuture.completedFuture(RETCODE_WSOCKET_CLOSED); } @@ -307,7 +297,7 @@ public abstract class WebSocket { * @param packets WebSocketPacket集合 * @return 0表示成功, 非0表示错误码 */ - CompletableFuture _sendToChannel(List packets) { + CompletableFuture sendToChannel0(List packets) { if (_channel == null || closed.get()) { return CompletableFuture.completedFuture(RETCODE_WSOCKET_CLOSED); } diff --git a/src/main/java/org/redkale/net/http/WebSocketServlet.java b/src/main/java/org/redkale/net/http/WebSocketServlet.java index 05d8efa21..afab47214 100644 --- a/src/main/java/org/redkale/net/http/WebSocketServlet.java +++ b/src/main/java/org/redkale/net/http/WebSocketServlet.java @@ -80,7 +80,7 @@ public abstract class WebSocketServlet extends HttpServlet implements Resourcabl private final BiConsumer restMessageConsumer = createRestOnMessageConsumer(); private final ObjectPool byteArrayPool = - ObjectPool.createSafePool(1000, () -> new ByteArray(), null, ByteArray::recycle); + ObjectPool.createSafePool(1024, ps -> new ByteArray(), null, ByteArray::recycle); // RestWebSocket时会被修改 protected Type messageRestType; @@ -411,9 +411,7 @@ public abstract class WebSocketServlet extends HttpServlet implements Resourcabl if (webSocket.delayPackets != null) { // 存在待发送的消息 List delayPackets = webSocket.delayPackets; webSocket.delayPackets = null; - // CompletableFuture cf = webSocket._writeIOThread.send(webSocket, - // delayPackets.toArray(new WebSocketPacket[delayPackets.size()])); - CompletableFuture cf = webSocket._sendToChannel(delayPackets); + CompletableFuture cf = webSocket.sendToChannel0(delayPackets); cf.whenComplete((Integer v, Throwable t) -> { Traces.currentTraceid(request.getTraceid()); if (userid == null || t != null) { @@ -437,9 +435,7 @@ public abstract class WebSocketServlet extends HttpServlet implements Resourcabl if (webSocket.delayPackets != null) { // 存在待发送的消息 List delayPackets = webSocket.delayPackets; webSocket.delayPackets = null; - // CompletableFuture cf = webSocket._writeIOThread.send(webSocket, - // delayPackets.toArray(new WebSocketPacket[delayPackets.size()])); - CompletableFuture cf = webSocket._sendToChannel(delayPackets); + CompletableFuture cf = webSocket.sendToChannel0(delayPackets); cf.whenComplete((Integer v, Throwable t) -> { Traces.currentTraceid(request.getTraceid()); if (sessionid == null || t != null) {