SESSION_WRAPPER - 会话包装类型SESSION_ID - 会话标识类型MESSAGE_TYPE - 消息类型public abstract class AbstractSessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE> extends Object implements ISessionManager<SESSION_WRAPPER,SESSION_ID,MESSAGE_TYPE>
| Constructor and Description |
|---|
AbstractSessionManager(IServerCfg serverCfg,
INioCodec codec,
long idleTimeInMillis)
构造器
|
| Modifier and Type | Method and Description |
|---|---|
protected abstract IServer<?,?> |
buildServer(IServerCfg serverCfg,
INioCodec codec)
根据服务端配置构建服务端实例
|
protected abstract SESSION_WRAPPER |
buildSessionWrapper(INioSession session,
InetSocketAddress socketAddress)
根据会话对象构建包装器
|
void |
close() |
void |
closeSessionWrapper(SESSION_WRAPPER sessionWrapper)
关闭会话并从会话管理器中移除
|
boolean |
contains(SESSION_ID sessionId)
判断指定的sessionId是否存在
|
void |
idleChecker(ISessionIdleChecker<SESSION_WRAPPER,SESSION_ID,MESSAGE_TYPE> sessionIdleChecker)
设置会话空闲检查器
|
void |
initialize()
初始化
|
protected void |
putSessionWrapper(SESSION_ID sessionId,
SESSION_WRAPPER sessionWrapper)
将会话包装器对象放入管理器
|
protected boolean |
register(SESSION_WRAPPER session)
执行会话注册逻辑
|
protected SESSION_WRAPPER |
registerSession(INioSession session,
InetSocketAddress socketAddress)
注册客户端会话
|
protected SESSION_WRAPPER |
removeSessionWrapper(SESSION_ID sessionId)
移除会话
|
long |
sessionCount()
获取会话实例数量
|
SESSION_WRAPPER |
sessionWrapper(SESSION_ID sessionId)
获取指定sessionId的会话包装器实例
|
Collection<SESSION_WRAPPER> |
sessionWrappers()
返回所有的会话包装器实例(只读)
|
void |
speedometer(Speedometer speedometer)
设置速度计数器(仅在服务启动前调用有效)
|
void |
speedTouch()
触发速度计数
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetSessionListener, sendTopublic AbstractSessionManager(IServerCfg serverCfg, INioCodec codec, long idleTimeInMillis)
serverCfg - 服务端配置接口实现codec - 编解码器接口实现idleTimeInMillis - 会话空闲时间毫秒值, 小于等于0表示不开启空闲检查public SESSION_WRAPPER sessionWrapper(SESSION_ID sessionId)
ISessionManagersessionWrapper in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>sessionId - 会话IDpublic Collection<SESSION_WRAPPER> sessionWrappers()
ISessionManagersessionWrappers in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>public boolean contains(SESSION_ID sessionId)
ISessionManagercontains in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>sessionId - 会话IDpublic void closeSessionWrapper(SESSION_WRAPPER sessionWrapper)
ISessionManagercloseSessionWrapper in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>sessionWrapper - 会话包装器实例public long sessionCount()
ISessionManagersessionCount in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>public void speedometer(Speedometer speedometer)
ISessionManagerspeedometer in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>speedometer - 速度计数器public void idleChecker(ISessionIdleChecker<SESSION_WRAPPER,SESSION_ID,MESSAGE_TYPE> sessionIdleChecker)
ISessionManageridleChecker in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>sessionIdleChecker - 会话空闲检查器接口实现类public void speedTouch()
protected SESSION_WRAPPER registerSession(INioSession session, InetSocketAddress socketAddress)
session - 会话对象socketAddress - 目标来源套接字地址protected boolean register(SESSION_WRAPPER session)
session - 会话包装器对象protected void putSessionWrapper(SESSION_ID sessionId, SESSION_WRAPPER sessionWrapper)
sessionId - 会话标识符sessionWrapper - 会话包装器对象protected SESSION_WRAPPER removeSessionWrapper(SESSION_ID sessionId)
sessionId - 会话标识符protected abstract SESSION_WRAPPER buildSessionWrapper(INioSession session, InetSocketAddress socketAddress)
session - 会话对象socketAddress - 目标来源套接字地址protected abstract IServer<?,?> buildServer(IServerCfg serverCfg, INioCodec codec)
serverCfg - 服务端配置codec - 编解码器public void initialize()
throws Exception
ISessionManagerinitialize in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>Exception - 初始过程中产生的任何异常public void close()
throws Exception
close in interface AutoCloseableExceptionCopyright © 2022. All rights reserved.