diff --git a/broker/src/main/java/io/moquette/imhandler/ChannelListenMember.java b/broker/src/main/java/io/moquette/imhandler/ChannelListenMember.java index bb64745d..2fba0d46 100644 --- a/broker/src/main/java/io/moquette/imhandler/ChannelListenMember.java +++ b/broker/src/main/java/io/moquette/imhandler/ChannelListenMember.java @@ -27,8 +27,6 @@ public class ChannelListenMember extends IMHandler { if (errorCode == ErrorCode.ERROR_CODE_SUCCESS) { WFCMessage.ModifyUserSettingReq modifyUserSettingReq = WFCMessage.ModifyUserSettingReq.newBuilder().setScope(kUserSettingListenedChannels).setKey(request.getChannelId()).setValue(request.getListen() > 0 ? "1" : "0").build(); mServer.onApiMessage(fromUser, null, modifyUserSettingReq.toByteArray(), 0, fromUser, PutUserSettingTopic, requestSourceType); - - publisher.notifyChannelListenStatusChanged(m_messagesStore.getChannelInfo(request.getChannelId()), fromUser, request.getListen() > 0); } return errorCode; } diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index bc43440f..341d4a62 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -3813,7 +3813,7 @@ public class MemoryMessagesStore implements IMessagesStore { IMap mIMap = hzInstance.getMap(CHANNELS); WFCMessage.ChannelInfo channelInfo = mIMap.get(channelId); if(channelInfo != null && (channelInfo.getStatus() & ProtoConstants.ChannelState.Channel_State_Mask_Private) > 0) { - return ErrorCode.ERROR_CODE_NOT_RIGHT; + return ErrorCode.ERROR_CODE_NOT_EXIST; } try { @@ -3823,7 +3823,8 @@ public class MemoryMessagesStore implements IMessagesStore { } finally { mWriteLock.unlock(); } - + + IMHandler.getPublisher().notifyChannelListenStatusChanged(channelInfo, operator, listen); return ErrorCode.ERROR_CODE_SUCCESS; }