diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/VersionAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/VersionAction.java index e9e52d15..a6c24303 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/VersionAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/VersionAction.java @@ -41,7 +41,7 @@ public class VersionAction extends Action { response.setContent(new Gson().toJson(GitRepositoryState.getGitRepositoryState())); } catch (IOException e) { e.printStackTrace(); - response.setContent("No version info!"); + response.setContent("{\"version\":\"unknown\"}"); } } } diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 3bceebb0..3deb0469 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -1481,7 +1481,7 @@ public class MemoryMessagesStore implements IMessagesStore { } if (existRequest != null) { - if (System.currentTimeMillis() - existRequest.getUpdateDt() > 7 * 24 * 60 * 60 * 1000) { + if (existRequest.getStatus() != ProtoConstants.FriendRequestStatus.RequestStatus_Accepted && System.currentTimeMillis() - existRequest.getUpdateDt() > 7 * 24 * 60 * 60 * 1000) { if (existRequest.getStatus() == ProtoConstants.FriendRequestStatus.RequestStatus_Rejected) { return ErrorCode.ERROR_CODE_FRIEND_REQUEST_BLOCKED; } @@ -1761,6 +1761,7 @@ public class MemoryMessagesStore implements IMessagesStore { userSettingMap.put(userId, settingEntry); userGlobalSlientMap.remove(userId); userConvSlientMap.remove(userId); + userPushHiddenDetail.remove(userId); return updateDt; } diff --git a/broker/src/main/java/io/moquette/spi/impl/MessagesPublisher.java b/broker/src/main/java/io/moquette/spi/impl/MessagesPublisher.java index bece73e7..0be55216 100755 --- a/broker/src/main/java/io/moquette/spi/impl/MessagesPublisher.java +++ b/broker/src/main/java/io/moquette/spi/impl/MessagesPublisher.java @@ -227,21 +227,25 @@ public class MessagesPublisher { isSlient = true; } else { isSlient = false; - WFCMessage.Conversation conversation; - if (conversationType == ProtoConstants.ConversationType.ConversationType_Private) { - conversation = WFCMessage.Conversation.newBuilder().setType(conversationType).setLine(line).setTarget(sender).build(); - } else { - conversation = WFCMessage.Conversation.newBuilder().setType(conversationType).setLine(line).setTarget(target).build(); - } - if (m_messagesStore.getUserConversationSlient(user, conversation)) { - LOG.info("The conversation {}-{}-{} is slient", conversation.getType(), conversation.getTarget(), conversation.getLine()); - isSlient = true; - } + if (!user.equals(sender)) { + WFCMessage.Conversation conversation; + if (conversationType == ProtoConstants.ConversationType.ConversationType_Private) { + conversation = WFCMessage.Conversation.newBuilder().setType(conversationType).setLine(line).setTarget(sender).build(); + } else { + conversation = WFCMessage.Conversation.newBuilder().setType(conversationType).setLine(line).setTarget(target).build(); + } - if (m_messagesStore.getUserGlobalSlient(user)) { - LOG.info("The user {} is global sliented", user); - isSlient = true; + + if (m_messagesStore.getUserConversationSlient(user, conversation)) { + LOG.info("The conversation {}-{}-{} is slient", conversation.getType(), conversation.getTarget(), conversation.getLine()); + isSlient = true; + } + + if (m_messagesStore.getUserGlobalSlient(user)) { + LOG.info("The user {} is global sliented", user); + isSlient = true; + } } if (!StringUtil.isNullOrEmpty(pushContent) || messageContentType == 400 || messageContentType == 402) {