From c4b91ebbc671a2aab38ad7da37f9ab398b5f5e6b Mon Sep 17 00:00:00 2001 From: redkale Date: Mon, 16 Oct 2023 16:42:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/redkale/mq/MessageClient.java | 68 ++----------------- .../java/org/redkale/mq/MessageRecord.java | 19 ++++-- .../org/redkale/net/sncp/SncpRemoteInfo.java | 2 +- 3 files changed, 19 insertions(+), 70 deletions(-) diff --git a/src/main/java/org/redkale/mq/MessageClient.java b/src/main/java/org/redkale/mq/MessageClient.java index b053b7c35..ff6ea2510 100644 --- a/src/main/java/org/redkale/mq/MessageClient.java +++ b/src/main/java/org/redkale/mq/MessageClient.java @@ -5,7 +5,6 @@ */ package org.redkale.mq; -import java.nio.charset.StandardCharsets; import java.util.Collection; import java.util.HashMap; import java.util.concurrent.CompletableFuture; @@ -20,7 +19,6 @@ import org.redkale.convert.Convert; import org.redkale.convert.json.JsonConvert; import static org.redkale.mq.MessageRecord.CTYPE_HTTP_REQUEST; import static org.redkale.mq.MessageRecord.CTYPE_HTTP_RESULT; -import static org.redkale.mq.MessageRecord.CTYPE_STRING; import org.redkale.net.http.HttpResult; import org.redkale.net.http.HttpSimpleRequest; import org.redkale.util.RedkaleException; @@ -123,77 +121,19 @@ public class MessageClient implements ClusterRpcClient @@ -30,16 +33,16 @@ public class MessageRecord implements Serializable { static final byte[] EMPTY_BYTES = new byte[0]; - protected static final byte CTYPE_STRING = 1; + public static final byte CTYPE_STRING = 1; //Bson bytes - protected static final byte CTYPE_BSON = 2; + public static final byte CTYPE_BSON = 2; //HttpSimpleRequest - protected static final byte CTYPE_HTTP_REQUEST = 3; + public static final byte CTYPE_HTTP_REQUEST = 3; //HttpResult - protected static final byte CTYPE_HTTP_RESULT = 4; + public static final byte CTYPE_HTTP_RESULT = 4; @ConvertColumn(index = 1) @Comment("消息序列号") @@ -358,7 +361,13 @@ public class MessageRecord implements Serializable { sb.append(",\"actionName\":").append(localActionName); } if (localParams != null) { - sb.append(",\"params\":").append(JsonConvert.root().convertTo(localParams)); + Object[] ps = Arrays.copyOf(localParams, localParams.length); + for (int i = 0; i < ps.length; i++) { + if (ps[i] instanceof WebSocketPacket || ps[i] instanceof MessageRecord) { + ps[i] = new StringWrapper(ps[i].toString()); + } + } + sb.append(",\"params\":").append(JsonConvert.root().convertTo(ps)); } } else { sb.append(",\"content\":\"").append(new String(this.content, StandardCharsets.UTF_8)).append("\""); diff --git a/src/main/java/org/redkale/net/sncp/SncpRemoteInfo.java b/src/main/java/org/redkale/net/sncp/SncpRemoteInfo.java index 53b5cc0c5..e86418a0e 100644 --- a/src/main/java/org/redkale/net/sncp/SncpRemoteInfo.java +++ b/src/main/java/org/redkale/net/sncp/SncpRemoteInfo.java @@ -163,7 +163,7 @@ public class SncpRemoteInfo { } ByteArray array = new ByteArray(); request.writeTo(null, array); - MessageRecord message = messageAgent.getSncpMessageClient().createMessageRecord(targetTopic, null, array.getBytes()); + MessageRecord message = messageAgent.getSncpMessageClient().createMessageRecord(MessageRecord.CTYPE_BSON, targetTopic, null, array.getBytes()); final String tt = targetTopic; message.localActionName(action.actionName()); message.localParams(params);