Netty如何实现心跳机制与断线重连?( 五 )

\n

注:new IdleStateHandler(5 0 0)该handler代表如果在5秒内没有收到来自客户端的任何数据包(包括但不限于心跳包) , 将会主动断开与该客户端的连接 。

\n

TcpServer —— 服务器端

\n

至此 , 所有代码已经编写完毕 。

\n

测试

\n

首先启动客户端 , 再启动服务器端 。 启动完成后 , 在客户端的控制台上 , 可以看到打印如下类似日志:

\n

\n\n\n

客户端控制台输出的日志

\n

在服务器端可以看到控制台输出了类似如下的日志:

\n

\n\n\n

服务器端控制台输出的日志

\n

可以看到 , 客户端在发送4个心跳包后 , 第5个包因为等待时间较长 , 等到真正发送的时候 , 发现连接已断开了;而服务器端收到客户端的4个心跳数据包后 , 迟迟等不到下一个数据包 , 所以果断断开该连接 。

推荐阅读