Netty实现长连接的原理

2018-03-08  本文已影响0人  阿斯蒂芬2

主要逻辑

使用netty实现长连接,主要靠心跳来维持服务器端及客户端连接。

主要的实现逻辑如下:

服务器端:(HeartBeatRespHandler)

1, 服务器在网络空闲操作一定时间后,服务端失败心跳计数器加1。

2, 如果收到客户端的ping心跳包,则清零失败心跳计数器,如果连续n次未收到客户端的ping心跳包,则关闭链路,释放资源,等待客户端重连。

客户端:(HeartBeatReqHandler)

1, 客户端网络空闲在一定时间内没有进行写操作时,则发送一个ping心跳包。

2, 如果服务器端未在发送下一个心跳包之前回复pong心跳应答包,则失败心跳计数器加1。

3, 如果客户端连续发送n(此处根据具体业务进行定义)次ping心跳包,服务器端均未回复pong心跳应答包,则客户端断开连接,间隔一定时间进行重连操作,直至连接服务器成功。

上一篇 下一篇

猜你喜欢

热点阅读