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, wait
getSessionListener, sendTo
public AbstractSessionManager(IServerCfg serverCfg, INioCodec codec, long idleTimeInMillis)
serverCfg
- 服务端配置接口实现codec
- 编解码器接口实现idleTimeInMillis
- 会话空闲时间毫秒值, 小于等于0表示不开启空闲检查public SESSION_WRAPPER sessionWrapper(SESSION_ID sessionId)
ISessionManager
sessionWrapper
in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>
sessionId
- 会话IDpublic Collection<SESSION_WRAPPER> sessionWrappers()
ISessionManager
sessionWrappers
in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>
public boolean contains(SESSION_ID sessionId)
ISessionManager
contains
in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>
sessionId
- 会话IDpublic void closeSessionWrapper(SESSION_WRAPPER sessionWrapper)
ISessionManager
closeSessionWrapper
in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>
sessionWrapper
- 会话包装器实例public long sessionCount()
ISessionManager
sessionCount
in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>
public void speedometer(Speedometer speedometer)
ISessionManager
speedometer
in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>
speedometer
- 速度计数器public void idleChecker(ISessionIdleChecker<SESSION_WRAPPER,SESSION_ID,MESSAGE_TYPE> sessionIdleChecker)
ISessionManager
idleChecker
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
ISessionManager
initialize
in interface ISessionManager<SESSION_WRAPPER extends ISessionWrapper<?,?>,SESSION_ID,MESSAGE_TYPE>
Exception
- 初始过程中产生的任何异常public void close() throws Exception
close
in interface AutoCloseable
Exception
Copyright © 2022. All rights reserved.