mina框架保持长连接状态问题

guzhichongshi 2014-06-24 06:21:27
mina框架提供了nio的封装,并提供了几个接口
sessionCreated在连接创建时被调用
sessionClosed在连接关闭时被调用
当后者被调用时实质上就知道了此次session连接已经断开,
那么这时需要再与客户端做一个心跳的功能来验证这个用户的在线状态么?
如果用户掉线,sessionClosed这个接口是否一定会被调用?
...全文
311 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2014-06-24
  • 打赏
  • 举报
回复
绝大部分情况涵盖了。但这个只是从MINA的API的设计层面来说。 比如你人工拔掉网线或者其他比较极端的情况,这个方法是不会被调用的。所以,有时候还要兼顾下idlestatus(过长的idle), exception(mina认为session/socket还在,但实际没了)之类。
guzhichongshi 2014-06-24
  • 打赏
  • 举报
回复
引用 1 楼 shine333 的回复:
你的在线概念是连接,还是用户处于活跃状态。 前者你只要keep alive即可,比如这个http://my.oschina.net/yjwxh/blog/174633 如果是用户是否活跃,可以判断IdleStatus
这里在线的概念就是连接没有中断,因为客户端没有用mina,只有在服务端才使用了该框架,所以这个心跳协议无法使用,如果按照之前所说的在线概念,是不是只要sessionClosed这个接口没被调用,就可以理解为与客户端的连接没有中断
shine333 2014-06-24
  • 打赏
  • 举报
回复
你的在线概念是连接,还是用户处于活跃状态。 前者你只要keep alive即可,比如这个http://my.oschina.net/yjwxh/blog/174633 如果是用户是否活跃,可以判断IdleStatus

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧