刚刚从mina中转向netty,链路检测报文怎么配都不好使,google之,终于在jboss的官网上发现已经报告此bug,并在netty4.0修复,给提供了patch包,修复patch之后,重新打包,发现还是没有解决。查看源码之后发现netty将超时的时间从options中设置。于是将超时时间重新设置:
ClientBootstrap bootstrap = new ClientBootstrap(new NioClientSocketChannelFactory(
Executors.newCachedThreadPool(),
Executors.newCachedThreadPool())
);
ChannelPipelineFactory pipelineFactory = new MyPipelineFactory(clientSessionHandler ,decoder,encoder);
bootstrap.setPipelineFactory( pipelineFactory );
bootstrap.setOption("allIdleTime","5"); //这里,很重要
public class ClientIdleHandler extends IdleStateAwareChannelHandler {
final Logger logger = LoggerFactory.getLogger(ClientIdleHandler.class);
@Override
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception {
if( e.getState() == IdleState.ALL_IDLE){
logger.debug("链路空闲!发送心跳!S:{} - C:{} idleState:{}", new Object[]{ctx.getChannel().getRemoteAddress(), ctx.getChannel().getLocalAddress() , e.getState()});
e.getChannel().write(MessageHelper.buildMessageEcho());
super.channelIdle(ctx, e);
}
}
}
public class MyPipelineFactory implements ChannelPipelineFactory{
private ETMessageDecoder decoder;
private ETMessageEncoder encoder;
private ChannelHandler clientHandler;
public MyPipelineFactory(ChannelHandler clientHandler,ETMessageDecoder decoder,ETMessageEncoder encoder){
this.clientHandler = clientHandler;
this.decoder = decoder;
this.encoder = encoder;
}
@Override
public ChannelPipeline getPipeline() throws Exception {
ChannelPipeline pipeline = Channels.pipeline();
Timer timer = new HashedWheelTimer();
pipeline.addLast("encoder",encoder);
pipeline.addLast("decoder" , decoder);
pipeline.addLast("handler" , clientHandler);
pipeline.addLast("timeout", new IdleStateHandler(timer, 0, 0, 10));
pipeline.addLast("idleHandler", new ClientIdleHandler());
return pipeline;
}
}
重新启动,解决。
- patch.rar (3 KB)
- 描述: netty3.2.4patch
- 下载次数: 87
分享到:
相关推荐
这个压缩包包含 `netty-3.2.5.Final.jar` 和 `netty-3.2.5.Final-sources.jar` 两个文件,它们分别代表了Netty框架的运行时库和源代码。 `netty-3.2.5.Final.jar` 是Netty的可执行JAR文件,包含了所有必要的类和...
赠送jar包:netty-3.7.0.Final.jar; 赠送原API文档:netty-3.7.0.Final-javadoc.jar; 赠送源代码:netty-3.7.0.Final-sources.jar; 赠送Maven依赖信息文件:netty-3.7.0.Final.pom; 包含翻译后的API文档:netty-...
赠送jar包:netty-3.10.5.Final.jar; 赠送原API文档:netty-3.10.5.Final-javadoc.jar; 赠送源代码:netty-3.10.5.Final-sources.jar; 赠送Maven依赖信息文件:netty-3.10.5.Final.pom; 包含翻译后的API文档:...
这个"Netty-4.1.17.Final.jar"是Netty框架的一个发行版本,它适用于Java 8及以上版本,这意味着它可以充分利用Java 8的新特性,如lambda表达式和流API,来提升性能和代码可读性。 Netty的核心设计理念是基于通道...
赠送jar包:netty-all-4.1.23.Final.jar; 赠送原API文档:netty-all-4.1.23.Final-javadoc.jar; 赠送源代码:netty-all-4.1.23.Final-sources.jar; 赠送Maven依赖信息文件:netty-all-4.1.23.Final.pom; 包含...
netty源码netty-netty-4.1.36.Final.rarnetty源码netty-netty-4.1.36.Final.rarnetty源码netty-netty-4.1.36.Final.rarnetty源码netty-netty-4.1.36.Final.rarnetty源码netty-netty-4.1.36.Final.rarnetty源码netty-...
Netty (netty-netty-3.10.6.Final.tar.gz)是一个 NIO 客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化和流线了网络编程,例如 TCP 和 UDP 套接字服务器。 “快速和简单”并...
netty-3.2.7.final JAR包,netty-3.2.7.final JAR包,netty-3.2.7.final JAR包
赠送jar包:netty-all-4.1.68.Final.jar; 赠送原API文档:netty-all-4.1.68.Final-javadoc.jar; 赠送源代码:netty-all-4.1.68.Final-sources.jar; 赠送Maven依赖信息文件:netty-all-4.1.68.Final.pom; 包含...
赠送jar包:netty-common-4.1.65.Final.jar; 赠送原API文档:netty-common-4.1.65.Final-javadoc.jar; 赠送源代码:netty-common-4.1.65.Final-sources.jar; 赠送Maven依赖信息文件:netty-common-4.1.65.Final....
赠送jar包:netty-buffer-4.1.68.Final.jar; 赠送原API文档:netty-buffer-4.1.68.Final-javadoc.jar; 赠送源代码:netty-buffer-4.1.68.Final-sources.jar; 赠送Maven依赖信息文件:netty-buffer-4.1.68.Final....
netty-3.8.0.Final.jar netty-3.8.0.Final.jar netty-3.8.0.Final.jar
netty-buffer-4.1.32.Final-sources.jar netty-buffer-4.1.32.Final.jar netty-build-22-sources.jar netty-build-22.jar netty-codec-4.1.32.Final-sources.jar netty-codec-4.1.32.Final.jar netty-codec-...
这个“netty-netty-4.1.69.Final.tar.gz”文件是Netty的最新稳定版本,版本号为4.1.69.Final,它是一个压缩包文件,通常包含源码、编译后的类库、文档和其他相关资源。 Netty的核心特点包括: 1. **异步事件驱动**...
赠送jar包:netty-all-4.1.29.Final.jar; 赠送原API文档:netty-all-4.1.29.Final-javadoc.jar; 赠送源代码:netty-all-4.1.29.Final-sources.jar; 赠送Maven依赖信息文件:netty-all-4.1.29.Final.pom; 包含...
netty-3.7.0.Final.jarnetty-3.7.0.Final.jarnetty-3.7.0.Final.jarnetty-3.7.0.Final.jarnetty-3.7.0.Final.jar