From 68707560b99c57c8f207f0110eec7dc8e5db5c0e Mon Sep 17 00:00:00 2001 From: imhao183 Date: Tue, 18 Aug 2020 22:37:16 +0800 Subject: [PATCH] fix recall message content error --- .../io/moquette/persistence/MemoryMessagesStore.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 82eb3c5c..4ff2d1e0 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -1521,9 +1521,19 @@ public class MemoryMessagesStore implements IMessagesStore { json.put("sc", message.getContent().getSearchableContent()); json.put("c", message.getContent().getContent()); json.put("e", message.getContent().getExtra()); + if (message.getContent().getData() != null && message.getContent().getData().size() > 0) { + json.put("b", Base64.getEncoder().encode(message.getContent().getData().toByteArray())); + } + if (message.getContent().getMediaType() > 0) { + json.put("mt", message.getContent().getMediaType()); + } + if (!StringUtil.isNullOrEmpty(message.getContent().getRemoteMediaUrl())) { + json.put("mu", message.getContent().getRemoteMediaUrl()); + } + String recalledContent = json.toJSONString(); - message = message.toBuilder().setContent(message.getContent().toBuilder().setContent(operatorId).setType(80).clearSearchableContent().setData(ByteString.copyFrom(String.valueOf(messageUid).getBytes())).setExtra(recalledContent).build()).build(); + message = message.toBuilder().setContent(WFCMessage.MessageContent.newBuilder().setContent(operatorId).setType(80).setData(ByteString.copyFrom(String.valueOf(messageUid).getBytes())).setExtra(recalledContent)).build(); messageBundle.setMessage(message); messageBundle.setFromClientId(clientId);