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);
|
|
|
|
|
|
|
|
}
|