Java Netty连接在30秒后变为非活动状态
我正试图为一个项目建立一个网络连接,我成功地做到了。但是,30秒后,连接变为非活动状态。我故意不使用连接,因为它是一个测试连接,但我想在30秒后保持它的活动状态,以便将来执行任务。这是我创建连接的代码:Java Netty连接在30秒后变为非活动状态,java,netty,Java,Netty,我正试图为一个项目建立一个网络连接,我成功地做到了。但是,30秒后,连接变为非活动状态。我故意不使用连接,因为它是一个测试连接,但我想在30秒后保持它的活动状态,以便将来执行任务。这是我创建连接的代码: try { Bootstrap b = new Bootstrap(); b.option(ChannelOption.TCP_NODELAY, true); b.option(ChannelOption.SO_KEEPALIVE, true);
try {
Bootstrap b = new Bootstrap();
b.option(ChannelOption.TCP_NODELAY, true);
b.option(ChannelOption.SO_KEEPALIVE, true);
b.group(new NioEventLoopGroup());
b.channel(NioSocketChannel.class);
b.handler(new ReadTimeoutHandler(50));
InetSocketAddress sa = new InetSocketAddress("--------IP HIDDEN--------", 25454);
ChannelFuture f = b.connect(sa.getAddress(), sa.getPort()).sync(); // (5)
Channel chan = f.channel();
//Channel becomes inactive after 30 seconds
} catch (Exception e) {
e.printStackTrace();
}
为什么要添加一个
ReadTimeoutHandler
?当我打开一个连接时,它需要一个处理程序。在真实的处理程序中,有一个不同的处理程序,但我使用的类是另一个库的一部分,它不是Java附带的。ReadTimeoutHandler也会出现同样的问题,因此其他处理程序类不会出现问题。您对ReadTimeoutHandler的定义是什么?谁被解雇了?是的。当我运行chan.isActive()时,它返回false。我不会解雇你的。它会自动触发,我不想让它这样做。如果它自动触发,则意味着远程对等方关闭了连接。我们在这里无能为力。您可能需要实现某种保持活动的逻辑。