idleStateHandler
Netty提供的检测会话状态的工具。
netty3🌰
Server.java
1 | package com.heart; |
HelloHanler.java
1 | package com.heart; |
等10秒不读也不写就会自动关闭
netty5🌰
Server.java
1 | package com.heart; |
ServerHandler.java
1 | package com.heart; |
总结
- 心跳其实就是一个普通的请求,特点数据简单,业务也简单
- 心跳对于服务端来说,定时清除闲置会话inactive(netty5) channelclose(netty3)
假如客户端突然停电了,这个时候会话保存着,然后有电了之后,再次请求会重新建立会话,原来的会话就成了僵尸会话,需要定时去清理这些僵尸会话。后台还可以返回系统时间,达到一个防作弊的效果,前端修改系统时间可以达到一个游戏加速的作用。
- 心跳对客户端来说,用来检测会话是否断开,是否重连! 用来检测网络延时!
手机app中经常有断开连接、重新连接的操作。玩王者的时候右上角有一个网络延迟,就是心跳做的。