gpt4 book ai didi

java - Netty的紧密连接

转载 作者:太空宇宙 更新时间:2023-11-04 08:06:29 24 4
gpt4 key购买 nike

我有一个使用 Netty 的项目,并且存在一些问题:

如果连接空闲一段时间,连接是否会自行关闭?如果自动关闭,如何设置关闭时间?

有 5 个线程,它们发送 100 个数据。他们使用相同的 channel ,例如

 /** release connect*/
public void closeConnect(ChannelFuture writeFuture){
if(writeFuture != null){
writeFuture.awaitUninterruptibly();
}
future.getChannel().close();
future.getChannel().getCloseFuture().awaitUninterruptibly();
client.releaseExternalResources();
}

//write data
ChannelFuture future = Channels.write(data);
closeConnect(future);

上述代码将导致 closeChannelException。我的问题是:如何避免异常?

另外,当我在客户端使用ReadTimeoutHandler,并设置timeout = 5s,并且让线程 hibernate 6s时,就会发生ReadTimeoutException。当我调用e.getChannel().close()时,它还会创建一个closeChannelException。我如何自己处理异常或无异常地关闭连接?

最佳答案

如果 API 抛出 ReadTimeoutException,您可以捕获该异常,然后调用 closeConnect(...)

但在我看来,该 channel 已经关闭;因此,要么忽略 CloseChannelException,要么在它影响程序状态时对其进行处理。

关于java - Netty的紧密连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12003773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com