netty 实现心跳检查--断开重连--通俗易懂
一.心跳介绍 网络中的接收和发送数据都是使用操作系统中的 SOCKET 进行实现。但是如果此套接字已经断开,那发送数据和接收数据的时候就一定会有问题。 1.心跳机制: 是服务端和客户端定时的发送一个心跳包 ( 自定义的数据结构体 ) ,让对方知道自己还活着,处于在线状态,以确保连接真实有效的一种机制。 2.心跳检查: 心跳检查是查看服务端和客户端是否定时的在正常的发送心跳包。 在 java 的定时线程任务中,我们也可以去实现定时的一些轮询任务,但是 netty 给我们提供了一些自身封装实现好的一些心跳检查机制,我们可以利用 netty 来实现高效的心跳检查机制。 二.netty 提供的心跳 netty4.x 中为我们提供了 IdleStateHandler 来检查服务端和客户端的心跳。 IdleStateHandler 类中是这样描述的:triggers an {@link IdleStateEvent} when a {@link Channel} has not performed read, write, or both operation for a while. 解释:在一段时间内,如果有读、写、读写空闲时发生时,会触发这个这个事件 IdleStateHandler会记录IdleStateEvent事件(读空闲、写空闲、读写空闲