jjzjj

IdleStateHandler

全部标签

java - Netty IdleStateHandler 的问题——我是不是以错误的方式测试它?

我有一个玩具Netty服务器,当他们的channel没有发生任何事情时,我正试图向他们发送心跳消息。我正在通过telnet到服务器进行测试,写一条消息然后不发送任何东西,但我没有听到任何心跳!控制台:>>telnetlocalhost6969Trying127.0.0.1...Connectedtolocalhost.Escapecharacteris'^]'.>>fooDidyousay'foo'?MyPipelineFactory.javapublicclassMyPipelineFactoryimplementsChannelPipelineFactory{privatefina

IdleStateHandler 心跳机制源码详解

优质博文:IT-BLOG-CN一、心跳机制Netty支持心跳机制,可以检测远程服务端是否存活或者活跃。心跳是在TCP长连接中,客户端和服务端定时向对方发送数据包通知对方自己还在线,保证连接的有效性的一种机制。在服务器和客户端之间一定时间内没有数据交互时,即处于idle状态时,客户端或服务器会发送一个特殊的数据包给对方,当接收方收到这个数据报文后,也立即发送一个特殊的数据报文,回应发送方,即一个PING-PONG交互。当某一端收到心跳消息后,就知道了对方仍然在线,这就确保TCP连接的有效性。Netty提供了IdleStateHandler可以对三种类型心跳进行检测,是用来监测连接的空闲情况。然后