From a820300f04ba23440e61cb37afc328be744df6ba Mon Sep 17 00:00:00 2001 From: imhao183 Date: Thu, 20 Aug 2020 08:54:59 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=9C=A8=E7=BA=BF=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E9=80=9A=E7=9F=A5=E4=B8=AD=E6=B7=BB=E5=8A=A0=E5=8C=85?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/moquette/spi/impl/ProtocolProcessor.java | 14 +++++--------- .../cn/wildfirechat/pojos/UserOnlineStatus.java | 4 +++- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/broker/src/main/java/io/moquette/spi/impl/ProtocolProcessor.java b/broker/src/main/java/io/moquette/spi/impl/ProtocolProcessor.java index de3c9a23..6163ed71 100755 --- a/broker/src/main/java/io/moquette/spi/impl/ProtocolProcessor.java +++ b/broker/src/main/java/io/moquette/spi/impl/ProtocolProcessor.java @@ -243,18 +243,16 @@ public class ProtocolProcessor { MemorySessionStore.Session session = m_sessionsStore.getSession(clientId); if(session != null) { session.refreshLastActiveTime(); - forwardOnlineStatusEvent(payload.userName(), clientId, session.getPlatform(), UserOnlineStatus.ONLINE); + forwardOnlineStatusEvent(payload.userName(), clientId, session.getPlatform(), UserOnlineStatus.ONLINE, session.getAppName()); m_messagesStore.updateUserOnlineSetting(session, true); - } else { - forwardOnlineStatusEvent(payload.userName(), clientId, ProtoConstants.Platform.Platform_UNSET, UserOnlineStatus.ONLINE); } LOG.info("The CONNECT message has been processed. CId={}, username={}", clientId, payload.userName()); } - public void forwardOnlineStatusEvent(String userId, String clientId, int platform, int status) { + public void forwardOnlineStatusEvent(String userId, String clientId, int platform, int status, String packageName) { if (!StringUtil.isNullOrEmpty(mUserOnlineStatusCallback)) { - executorCallback.execute(() -> HttpUtils.httpJsonPost(mUserOnlineStatusCallback, new Gson().toJson(new UserOnlineStatus(userId, clientId, platform, status)))); + executorCallback.execute(() -> HttpUtils.httpJsonPost(mUserOnlineStatusCallback, new Gson().toJson(new UserOnlineStatus(userId, clientId, platform, status, packageName)))); } } @@ -562,9 +560,7 @@ public class ProtocolProcessor { MemorySessionStore.Session session = m_sessionsStore.getSession(clientID); if(session != null) { m_messagesStore.updateUserOnlineSetting(session, false); - } - if(session != null) { - forwardOnlineStatusEvent(username, clientID, session.getPlatform(), UserOnlineStatus.LOGOUT); + forwardOnlineStatusEvent(username, clientID, session.getPlatform(), UserOnlineStatus.LOGOUT, session.getAppName()); } channel.closeFuture(); @@ -608,7 +604,7 @@ public class ProtocolProcessor { MemorySessionStore.Session session = m_sessionsStore.getSession(clientID); if(session != null) { session.refreshLastActiveTime(); - forwardOnlineStatusEvent(username, clientID, session.getPlatform(), clearSession ? UserOnlineStatus.LOGOUT : UserOnlineStatus.OFFLINE); + forwardOnlineStatusEvent(username, clientID, session.getPlatform(), clearSession ? UserOnlineStatus.LOGOUT : UserOnlineStatus.OFFLINE, session.getAppName()); m_messagesStore.updateUserOnlineSetting(session, false); } diff --git a/common/src/main/java/cn/wildfirechat/pojos/UserOnlineStatus.java b/common/src/main/java/cn/wildfirechat/pojos/UserOnlineStatus.java index 8ae14bd4..7c760ec8 100644 --- a/common/src/main/java/cn/wildfirechat/pojos/UserOnlineStatus.java +++ b/common/src/main/java/cn/wildfirechat/pojos/UserOnlineStatus.java @@ -10,12 +10,14 @@ public class UserOnlineStatus { public int platform; public int status; public long timestamp; + public String packageName; - public UserOnlineStatus(String userId, String clientId, int platform, int status) { + public UserOnlineStatus(String userId, String clientId, int platform, int status, String packageName) { this.userId = userId; this.clientId = clientId; this.platform = platform; this.status = status; + this.packageName = packageName; this.timestamp = System.currentTimeMillis(); } }