wg-basic/basic-interface/src/main/java/ink/wgink/interfaces/manager/IWebSocketUserSessionManager.java

98 lines
2.1 KiB
Java
Raw Normal View History

2021-11-30 13:59:49 +08:00
package ink.wgink.interfaces.manager;
import ink.wgink.exceptions.websocket.SessionException;
import ink.wgink.pojo.session.WebSocketSession;
import io.netty.channel.Channel;
import java.util.List;
/**
* @ClassName: IRedisWebSocketChannelManager
* @Description: redis websocket channel 管理器
* @Author: wanggeng
* @Date: 2021/11/29 5:57 下午
* @Version: 1.0
*/
public interface IWebSocketUserSessionManager {
String CHANNEL_HASH_KEY = "websocket:channels";
/**
* 初始化
*
* @param userId
* @param sessionId
* @param clientName
*/
void init(String userId, String sessionId, String clientName);
/**
* 添加通道
*
* @param sessionId
* @param userId
* @param channel
* @return
* @throws SessionException
*/
WebSocketSession addChannel(String sessionId, String userId, Channel channel) throws SessionException;
/**
* 删除通道
*
* @param channel
*/
void removeChannel(Channel channel);
/**
* 在线会话列表
*
* @param userId 用户ID
* @return
*/
List<WebSocketSession> listOnlineUser(String userId);
/**
* 在线会话
*
* @param userId 用户ID
* @param clientName 客户端名称
* @return
*/
2022-08-08 16:41:55 +08:00
List<WebSocketSession> listOnlineUser(String userId, String clientName);
2021-11-30 13:59:49 +08:00
/**
* 在线会话列表
*
* @param userIds 用户ID列表
* @return
*/
List<WebSocketSession> listOnlineUser(List<String> userIds);
/**
* 在线会话列表
*
* @param userIds 用户ID
* @param clientName 客户端名称
* @return
*/
List<WebSocketSession> listOnlineUser(List<String> userIds, String clientName);
/**
* 在线用户
*
* @param sessionId 会话ID
* @return
*/
WebSocketSession getOnlineUserBySessionId(String sessionId);
/**
* 通过通道获取用户
*
* @param channelId
* @return
*/
WebSocketSession getOnlineUserByChannelId(String channelId);
}