配置文件一些参数的说明
server.xml
<sessionMaxIdleTime>60</sessionMaxIdleTime>
<userMaxIdleTime>300</userMaxIdleTime>
zone.xml
<userReconnectionSeconds>8</userReconnectionSeconds>
<overrideMaxUserIdleTime>300</overrideMaxUserIdleTime>
其中:zone的 overrideMaxUserIdleTime 会覆盖掉server配置文件的 userMaxIdleTime 这个数值。
sessionMaxIdleTime:这个是session最大空闲时间,是session的属性maxIdleTime设值的地方
userMaxIdleTime :这个属性是session的maxLoggedInIdleTime设值的地方。
怎么认为空闲呢?
session管理器:DefaultSessionManager 使用一个内部类,默认每隔10秒钟检查,清理过期的session。
判别是这样的,如果当前session就是根据loggedIn属性是否登录。
如果未登录则是:
在客户端和服务端交互时,不管是服务端读取客户端数据还是往客户端写入数据,都会更新一个session的时间属性:lastActivityTime,为当前时间。
如已登录:
在用户操作,就是服务端收到客户端数据包时,或是用户变量在服务端变更时,更新一个session的时间属性:lastLoggedInActivityTime 为当前时间。
如超时,处理以后,则分发一个 sessionIdle 事件。表明该session已经超时。
下篇继续其他。。。。
(Q群号:33431550 可来此讨论一起学习。谢谢)