From 59977fb1bace1f27d5659dc73736e01667802146 Mon Sep 17 00:00:00 2001 From: imhao183 Date: Thu, 12 Nov 2020 16:34:54 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=B6=88=E6=81=AF=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=88=B0=E5=8F=91=E9=80=81=E8=80=85=E5=85=B6=E5=AE=83?= =?UTF-8?q?=E7=AB=AF=E6=97=B6=EF=BC=8C=E6=8E=92=E9=99=A4=E6=8E=89=E5=8F=91?= =?UTF-8?q?=E9=80=81=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/moquette/spi/impl/MessagesPublisher.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 9f08a1d8..7b373f33 100755 --- a/broker/src/main/java/io/moquette/spi/impl/MessagesPublisher.java +++ b/broker/src/main/java/io/moquette/spi/impl/MessagesPublisher.java @@ -161,7 +161,7 @@ public class MessagesPublisher { private void publish2Receivers(String sender, int conversationType, String target, int line, long messageHead, Collection receivers, String pushContent, String pushData, String exceptClientId, int pullType, int messageContentType, long serverTime, int mentionType, List mentionTargets, int persistFlag) { if (persistFlag == Transparent) { - publishTransparentMessage2Receivers(messageHead, receivers, pullType); + publishTransparentMessage2Receivers(messageHead, receivers, pullType, exceptClientId); return; } @@ -366,7 +366,7 @@ public class MessagesPublisher { } } - private void publishTransparentMessage2Receivers(long messageHead, Collection receivers, int pullType) { + private void publishTransparentMessage2Receivers(long messageHead, Collection receivers, int pullType, String exceptClientId) { WFCMessage.Message message = m_messagesStore.getMessage(messageHead); if (message != null) { @@ -381,6 +381,9 @@ public class MessagesPublisher { if (targetSession.getClientID() == null) { continue; } + if (targetSession.getClientID().equals(exceptClientId)) { + continue; + } boolean targetIsActive = this.connectionDescriptors.isConnected(targetSession.getClientSession().clientID); if (targetIsActive) {