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 46607d83..7944fe9e 100755 --- a/broker/src/main/java/io/moquette/spi/impl/MessagesPublisher.java +++ b/broker/src/main/java/io/moquette/spi/impl/MessagesPublisher.java @@ -604,7 +604,7 @@ public class MessagesPublisher { public void publish2Receivers(WFCMessage.Message message, Set receivers, String exceptClientId, int pullType) { if (message.getConversation().getType() == ProtoConstants.ConversationType.ConversationType_Channel) { WFCMessage.ChannelInfo channelInfo = m_messagesStore.getChannelInfo(message.getConversation().getTarget()); - if (channelInfo != null && !StringUtil.isNullOrEmpty(channelInfo.getCallback())) { + if (channelInfo != null && !StringUtil.isNullOrEmpty(channelInfo.getCallback()) && channelInfo.getAutomatic() == 1 && !message.getFromUser().equals(channelInfo.getOwner())) { OutputClient outputClient = null; if(m_messagesStore.isChannelCallbackWithClientInfo() && !StringUtil.isNullOrEmpty(exceptClientId)) { Session session = m_sessionsStore.getSession(exceptClientId); @@ -701,7 +701,7 @@ public class MessagesPublisher { } public void notifyChannelListenStatusChanged(WFCMessage.ChannelInfo channelInfo, String user, boolean listen) { - if (channelInfo == null || StringUtil.isNullOrEmpty(channelInfo.getCallback())) { + if (channelInfo == null || StringUtil.isNullOrEmpty(channelInfo.getCallback()) || channelInfo.getAutomatic() == 0) { return; }