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);