diff --git a/broker/src/main/java/io/moquette/imhandler/HandleFriendRequestHandler.java b/broker/src/main/java/io/moquette/imhandler/HandleFriendRequestHandler.java index 04f59be1..4e5b5355 100644 --- a/broker/src/main/java/io/moquette/imhandler/HandleFriendRequestHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/HandleFriendRequestHandler.java @@ -28,7 +28,7 @@ public class HandleFriendRequestHandler extends IMHandler 0) { + publisher.publishNotification(IMTopic.NotifyFriendRequestTopic, request.getTargetUid(), heads[2], fromUser, null); + } + if(heads[3] > 0) { + publisher.publishNotification(IMTopic.NotifyFriendRequestTopic, fromUser, heads[3], fromUser, null); + } + } } if(errorCode == ERROR_CODE_ALREADY_FRIENDS) { errorCode = ERROR_CODE_SUCCESS; diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index fb4bccb5..f2b6433a 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -3033,6 +3033,7 @@ public class MemoryMessagesStore implements IMessagesStore { return ErrorCode.ERROR_CODE_FRIEND_REQUEST_EXPIRED; } else { existRequest = existRequest.toBuilder().setStatus(request.getStatus()).setUpdateDt(System.currentTimeMillis()).build(); + heads[2] = existRequest.getUpdateDt(); databaseStore.persistOrUpdateFriendRequest(existRequest); if (request.getStatus() == ProtoConstants.FriendRequestStatus.RequestStatus_Accepted) { @@ -3051,6 +3052,7 @@ public class MemoryMessagesStore implements IMessagesStore { if (existTargetRequest != null && existTargetRequest.getStatus() == ProtoConstants.FriendRequestStatus.RequestStatus_Sent) { existTargetRequest = existTargetRequest.toBuilder().setStatus(request.getStatus()).setUpdateDt(existRequest.getUpdateDt()).build(); + heads[3] = existRequest.getUpdateDt(); databaseStore.persistOrUpdateFriendRequest(existTargetRequest); } }