From b4979e540816346040c6c15533b416db22712d12 Mon Sep 17 00:00:00 2001 From: imhao183 Date: Sat, 30 Jan 2021 09:09:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=BD=93=E6=95=8F=E6=84=9F?= =?UTF-8?q?=E8=AF=8D=E7=AD=96=E7=95=A5=E4=B8=BA=E5=BF=BD=E7=95=A5=E6=97=B6?= =?UTF-8?q?=E6=95=8F=E6=84=9F=E8=AF=8D=E6=B6=88=E6=81=AF=E4=BC=9A=E4=BB=8E?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E6=B6=88=E6=81=AF=E5=8A=9F=E8=83=BD=E4=B8=AD?= =?UTF-8?q?=E6=8B=89=E5=8F=96=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/moquette/imhandler/GroupHandler.java | 2 +- .../imhandler/HandleFriendRequestHandler.java | 6 +++--- .../main/java/io/moquette/imhandler/IMHandler.java | 6 +++--- .../io/moquette/imhandler/SendMessageHandler.java | 6 +++--- .../moquette/persistence/MemoryMessagesStore.java | 14 +------------- .../main/java/io/moquette/spi/IMessagesStore.java | 2 +- 6 files changed, 12 insertions(+), 24 deletions(-) diff --git a/broker/src/main/java/io/moquette/imhandler/GroupHandler.java b/broker/src/main/java/io/moquette/imhandler/GroupHandler.java index c517f04a..d972668a 100644 --- a/broker/src/main/java/io/moquette/imhandler/GroupHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/GroupHandler.java @@ -43,7 +43,7 @@ abstract public class GroupHandler extends IMHandler { try { long messageId = MessageShardingUtil.generateId(); builder.setMessageId(messageId); - saveAndPublish(fromUser, null, builder.build(), false); + saveAndPublish(fromUser, null, builder.build()); } catch (Exception e) { e.printStackTrace(); } diff --git a/broker/src/main/java/io/moquette/imhandler/HandleFriendRequestHandler.java b/broker/src/main/java/io/moquette/imhandler/HandleFriendRequestHandler.java index fb170834..fbdba177 100644 --- a/broker/src/main/java/io/moquette/imhandler/HandleFriendRequestHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/HandleFriendRequestHandler.java @@ -37,7 +37,7 @@ public class HandleFriendRequestHandler extends IMHandler { Set notifyReceivers = new LinkedHashSet<>(); WFCMessage.Message.Builder messageBuilder = message.toBuilder(); - int pullType = m_messagesStore.getNotifyReceivers(username, messageBuilder, notifyReceivers, false); + int pullType = m_messagesStore.getNotifyReceivers(username, messageBuilder, notifyReceivers); mServer.getImBusinessScheduler().execute(() -> this.publisher.publish2Receivers(messageBuilder.build(), notifyReceivers, clientID, pullType)); return notifyReceivers.size(); } - protected long saveAndPublish(String username, String clientID, WFCMessage.Message message, boolean ignoreMsg) { + protected long saveAndPublish(String username, String clientID, WFCMessage.Message message) { Set notifyReceivers = new LinkedHashSet<>(); message = m_messagesStore.storeMessage(username, clientID, message); WFCMessage.Message.Builder messageBuilder = message.toBuilder(); - int pullType = m_messagesStore.getNotifyReceivers(username, messageBuilder, notifyReceivers, ignoreMsg); + int pullType = m_messagesStore.getNotifyReceivers(username, messageBuilder, notifyReceivers); mServer.getImBusinessScheduler().execute(() -> this.publisher.publish2Receivers(messageBuilder.build(), notifyReceivers, clientID, pullType)); return notifyReceivers.size(); } diff --git a/broker/src/main/java/io/moquette/imhandler/SendMessageHandler.java b/broker/src/main/java/io/moquette/imhandler/SendMessageHandler.java index 17b1c6ca..fad182bc 100644 --- a/broker/src/main/java/io/moquette/imhandler/SendMessageHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/SendMessageHandler.java @@ -118,7 +118,6 @@ public class SendMessageHandler extends IMHandler { publisher.forwardMessage(message, mForwardUrl); } - if (!isAdmin) { Set matched = m_messagesStore.handleSensitiveWord(message.getContent().getSearchableContent()); if (matched != null && !matched.isEmpty()) { @@ -132,7 +131,6 @@ public class SendMessageHandler extends IMHandler { for (String word : matched) { text = text.replace(word, "***"); } - message = message.toBuilder().setContent(message.getContent().toBuilder().setSearchableContent(text).build()).build(); } else if(mSensitiveType == 3) { @@ -141,7 +139,9 @@ public class SendMessageHandler extends IMHandler { } if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) { - saveAndPublish(fromUser, clientID, message, ignoreMsg); + if(!ignoreMsg) { + saveAndPublish(fromUser, clientID, message); + } ackPayload = ackPayload.capacity(20); ackPayload.writeLong(messageId); ackPayload.writeLong(timestamp); diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 8899aa1a..b1fc8e9f 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -406,24 +406,12 @@ public class MemoryMessagesStore implements IMessagesStore { @Override - public int getNotifyReceivers(String fromUser, WFCMessage.Message.Builder messageBuilder, Set notifyReceivers, boolean ignoreMsg) { + public int getNotifyReceivers(String fromUser, WFCMessage.Message.Builder messageBuilder, Set notifyReceivers) { WFCMessage.Message message = messageBuilder.build(); HazelcastInstance hzInstance = m_Server.getHazelcastInstance(); int type = message.getConversation().getType(); int pullType = ProtoConstants.PullType.Pull_Normal; - if (ignoreMsg) { - if (type == ProtoConstants.ConversationType.ConversationType_ChatRoom) { - pullType = ProtoConstants.PullType.Pull_ChatRoom; - } - -// if (message.getContent().getPersistFlag() != Transparent) { - notifyReceivers.add(fromUser); -// } - return pullType; - } - - if (type == ProtoConstants.ConversationType.ConversationType_Private) { notifyReceivers.add(fromUser); notifyReceivers.add(message.getConversation().getTarget()); diff --git a/broker/src/main/java/io/moquette/spi/IMessagesStore.java b/broker/src/main/java/io/moquette/spi/IMessagesStore.java index 16127c08..ed42cd1d 100755 --- a/broker/src/main/java/io/moquette/spi/IMessagesStore.java +++ b/broker/src/main/java/io/moquette/spi/IMessagesStore.java @@ -100,7 +100,7 @@ public interface IMessagesStore { DatabaseStore getDatabaseStore(); WFCMessage.Message storeMessage(String fromUser, String fromClientId, WFCMessage.Message message); void storeSensitiveMessage(WFCMessage.Message message); - int getNotifyReceivers(String fromUser, WFCMessage.Message.Builder message, Set notifyReceivers, boolean ignoreMsg); + int getNotifyReceivers(String fromUser, WFCMessage.Message.Builder message, Set notifyReceivers); Set getAllEnds(); WFCMessage.PullMessageResult fetchMessage(String user, String exceptClientId, long fromMessageId, int pullType); WFCMessage.PullMessageResult loadRemoteMessages(String user, WFCMessage.Conversation conversation, long beforeUid, int count);