添加获取在线用户信息和获取用户session信息的接口
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -16,13 +16,10 @@
|
||||
|
||||
package io.moquette.spi;
|
||||
|
||||
import cn.wildfirechat.pojos.InputOutputUserInfo;
|
||||
import cn.wildfirechat.pojos.OutputUserChatroom;
|
||||
import cn.wildfirechat.pojos.SystemSettingPojo;
|
||||
import cn.wildfirechat.pojos.*;
|
||||
import cn.wildfirechat.proto.ProtoConstants;
|
||||
import cn.wildfirechat.proto.WFCMessage;
|
||||
import com.xiaoleilu.loServer.model.FriendData;
|
||||
import cn.wildfirechat.pojos.InputOutputUserBlockStatus;
|
||||
import io.moquette.persistence.DatabaseStore;
|
||||
import io.moquette.persistence.MemorySessionStore;
|
||||
import io.moquette.persistence.UserClientEntry;
|
||||
@@ -32,10 +29,7 @@ import io.netty.buffer.Unpooled;
|
||||
import io.netty.handler.codec.mqtt.MqttQoS;
|
||||
import cn.wildfirechat.common.ErrorCode;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Defines the SPI to be implemented by a StorageService that handle persistence of messages
|
||||
@@ -228,6 +222,9 @@ public interface IMessagesStore {
|
||||
boolean checkUserInChannel(String user, String channelId);
|
||||
Collection<String> getChannelSubscriber(String channelId);
|
||||
|
||||
int getOnlineUserCount();
|
||||
GetOnlineUserResult getOnlineUsers(int offset, int count);
|
||||
|
||||
Set<String> handleSensitiveWord(String message);
|
||||
boolean addSensitiveWords(List<String> words);
|
||||
boolean removeSensitiveWords(List<String> words);
|
||||
|
||||
@@ -74,6 +74,8 @@ public interface ISessionsStore {
|
||||
*/
|
||||
Collection<ClientSession> getAllSessions();
|
||||
|
||||
boolean isClientOnline(String clientId);
|
||||
|
||||
StoredMessage inFlightAck(String clientID, int messageID);
|
||||
|
||||
/**
|
||||
|
||||
@@ -731,6 +731,10 @@ public class ProtocolProcessor {
|
||||
channel.flush();
|
||||
}
|
||||
|
||||
public ConnectionDescriptorStore getConnectionDescriptors() {
|
||||
return connectionDescriptors;
|
||||
}
|
||||
|
||||
public void addInterceptHandler(InterceptHandler interceptHandler) {
|
||||
this.m_interceptor.addInterceptHandler(interceptHandler);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user