diff --git a/src/org/redkale/net/http/WebSocket.java b/src/org/redkale/net/http/WebSocket.java index 5f72f4e88..4beef2eed 100644 --- a/src/org/redkale/net/http/WebSocket.java +++ b/src/org/redkale/net/http/WebSocket.java @@ -134,6 +134,8 @@ public abstract class WebSocket { return ((CompletableFuture) message).thenCompose((json) -> { if (json == null || json instanceof CharSequence || json instanceof byte[]) { return sendPacket(new WebSocketPacket((Serializable) json, last)); + } else if (message instanceof WebSocketPacket) { + return sendPacket((WebSocketPacket) message); } else { return sendPacket(new WebSocketPacket(_jsonConvert, json, last)); } @@ -141,6 +143,8 @@ public abstract class WebSocket { } if (message == null || message instanceof CharSequence || message instanceof byte[]) { return sendPacket(new WebSocketPacket((Serializable) message, last)); + } else if (message instanceof WebSocketPacket) { + return sendPacket((WebSocketPacket) message); } else { return sendPacket(new WebSocketPacket(_jsonConvert, message, last)); } diff --git a/src/org/redkale/net/http/WebSocketGroup.java b/src/org/redkale/net/http/WebSocketGroup.java index af072f111..07fa622f7 100644 --- a/src/org/redkale/net/http/WebSocketGroup.java +++ b/src/org/redkale/net/http/WebSocketGroup.java @@ -120,7 +120,9 @@ public final class WebSocketGroup { } public final CompletableFuture sendEach(Object message, boolean last) { - if (message != null && !(message instanceof byte[]) && !(message instanceof CharSequence)) { + if (message instanceof WebSocketPacket) { + return sendEach((WebSocketPacket) message); + } else if (message != null && !(message instanceof byte[]) && !(message instanceof CharSequence)) { message = recentWebSocket._jsonConvert.convertTo(message); } return sendEach(new WebSocketPacket((Serializable) message, last));