diff --git a/broker/config/wildfirechat.conf b/broker/config/wildfirechat.conf index 9dfaa1b4..50ccb63a 100755 --- a/broker/config/wildfirechat.conf +++ b/broker/config/wildfirechat.conf @@ -74,6 +74,9 @@ friend.repeat_request_duration 604800000 ##好友请求被拒绝后再次发送的间隔,单位是毫秒,默认是30天,0为不限制 friend.reject_request_duration 2592000000 +##好友请求过期时间,单位是毫秒,默认是7天,0为不限制 +friend.request_expiration_duration 604800000 + ## 聊天室观众空闲退出时间,单位为毫秒,默认为15分钟,0为永远不退出 chatroom.participant_idle_time 900000 diff --git a/broker/src/main/java/io/moquette/BrokerConstants.java b/broker/src/main/java/io/moquette/BrokerConstants.java index 115d9481..df6c7bb5 100755 --- a/broker/src/main/java/io/moquette/BrokerConstants.java +++ b/broker/src/main/java/io/moquette/BrokerConstants.java @@ -124,6 +124,7 @@ public final class BrokerConstants { public static final String MESSAGE_Blacklist_Strategy = "message.blacklist.strategy"; public static final String FRIEND_Repeat_Request_Duration = "friend.repeat_request_duration"; public static final String FRIEND_Reject_Request_Duration = "friend.reject_request_duration"; + public static final String FRIEND_Request_Expiration_Duration = "friend.request_expiration_duration"; public static final String CHATROOM_Participant_Idle_Time = "chatroom.participant_idle_time"; public static final String CHATROOM_Rejoin_When_Active = "chatroom.rejoin_when_active"; diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 620a7841..18aa8ec0 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -22,7 +22,6 @@ import cn.wildfirechat.proto.WFCMessage; import com.google.protobuf.ByteString; import com.hazelcast.core.*; import com.hazelcast.util.StringUtil; -import com.xiaoleilu.hutool.system.UserInfo; import com.xiaoleilu.loServer.model.FriendData; import cn.wildfirechat.pojos.InputOutputUserBlockStatus; import cn.wildfirechat.common.ErrorCode; @@ -122,6 +121,8 @@ public class MemoryMessagesStore implements IMessagesStore { private long mFriendRequestDuration = 7 * 24 * 60 * 60 * 1000; private long mFriendRejectDuration = 30 * 24 * 60 * 60 * 1000; + private long mFriendRequestExpiration = 7 * 24 * 60 * 60 * 1000; + private boolean mDisableStrangerChat = false; private long mChatroomParticipantIdleTime = 900000; @@ -155,6 +156,13 @@ public class MemoryMessagesStore implements IMessagesStore { Utility.printExecption(LOG, e); } + try { + mFriendRequestExpiration = Long.parseLong(m_Server.getConfig().getProperty(FRIEND_Request_Expiration_Duration)); + } catch (Exception e) { + e.printStackTrace(); + Utility.printExecption(LOG, e); + } + try { mChatroomRejoinWhenActive = Boolean.parseBoolean(m_Server.getConfig().getProperty(BrokerConstants.CHATROOM_Rejoin_When_Active)); } catch (Exception e) { @@ -2074,8 +2082,8 @@ public class MemoryMessagesStore implements IMessagesStore { } if (existRequest != null) { - if (mFriendRequestDuration > 0 && System.currentTimeMillis() - existRequest.getUpdateDt() > mFriendRequestDuration) { - return ErrorCode.ERROR_CODE_FRIEND_REQUEST_OVERTIME; + if (mFriendRequestExpiration > 0 && System.currentTimeMillis() - existRequest.getUpdateDt() > mFriendRequestExpiration) { + return ErrorCode.ERROR_CODE_FRIEND_REQUEST_EXPIRED; } else { existRequest = existRequest.toBuilder().setStatus(ProtoConstants.FriendRequestStatus.RequestStatus_Accepted).setUpdateDt(System.currentTimeMillis()).build(); databaseStore.persistOrUpdateFriendRequest(existRequest); diff --git a/common/src/main/java/cn/wildfirechat/common/ErrorCode.java b/common/src/main/java/cn/wildfirechat/common/ErrorCode.java index 9fb4cf0f..419d1e90 100755 --- a/common/src/main/java/cn/wildfirechat/common/ErrorCode.java +++ b/common/src/main/java/cn/wildfirechat/common/ErrorCode.java @@ -36,7 +36,7 @@ public enum ErrorCode { //user error ERROR_CODE_FRIEND_ALREADY_REQUEST(16, "already send request"), ERROR_CODE_FRIEND_REQUEST_BLOCKED(18, "friend request blocked"), - ERROR_CODE_FRIEND_REQUEST_OVERTIME(19, "friend request overtime"), + ERROR_CODE_FRIEND_REQUEST_EXPIRED(19, "friend request expired"), ERROR_CODE_NOT_IN_CHATROOM(20, "not in chatroom"),