添加获取在线用户信息和获取用户session信息的接口

This commit is contained in:
heavyrian2012
2023-11-28 11:04:12 +08:00
parent 08b813cd9f
commit b774e0d423
12 changed files with 248 additions and 8 deletions
@@ -4367,6 +4367,35 @@ public class MemoryMessagesStore implements IMessagesStore {
return getChannelListener(channelId);
}
@Override
public int getOnlineUserCount() {
return m_Server.getProcessor().getConnectionDescriptors().getActiveConnectionsNo();
}
@Override
public GetOnlineUserResult getOnlineUsers(int offset, int count) {
List<String> onlineUserIds = new ArrayList<>(m_Server.getProcessor().getConnectionDescriptors().getConnectedClientIds());
GetOnlineUserResult result = new GetOnlineUserResult();
result.userClients = new ArrayList<>();
result.totalCount = onlineUserIds.size();
result.offset = offset;
if(onlineUserIds.size() > offset) {
List<String> clientIds = onlineUserIds.subList(offset, Math.min(offset+count, onlineUserIds.size()));
for (String clientId : clientIds) {
MemorySessionStore.Session session = m_Server.getStore().sessionsStore().getSession(clientId);
if(session != null) {
GetOnlineUserResult.UserClient userClient = new GetOnlineUserResult.UserClient();
userClient.userId = session.getUsername();
userClient.clientId = session.getClientID();
userClient.platform = session.getPlatform();
result.userClients.add(userClient);
}
}
}
return result;
}
@Override
public Set<String> handleSensitiveWord(String message) {
updateSensitiveWord();
@@ -615,6 +615,11 @@ public class MemorySessionStore implements ISessionsStore {
return result;
}
@Override
public boolean isClientOnline(String clientId) {
return mServer.getProcessor().getConnectionDescriptors().isConnected(clientId);
}
@Override
public StoredMessage inFlightAck(String clientID, int messageID) {
return getSession(clientID).outboundFlightMessages.remove(messageID);