3

我计划修改 Netty UptimeClient(见这里)。原始版本旨在无限运行:它会在断开连接的情况下重新连接到主机。我想在 UptimeClient.java 中添加一个“终止”方法。该方法将断开或停止与外部线程的重新连接过程,优雅地关闭 Netty,然后返回。

由于客户端通道可能会因为重新连接过程而发生变化,所以将“bootstrap.connect()”返回的所有通道保留在 ChannelGroup 中,并在释放 Netty 的资源之前使用该组调用“关闭”是否安全?

您将如何实现“终止”方法?(编辑:使用 3.7.0)

4

1 回答 1

5

在 Nety 4.0 中,您只需调用管理​​您所有频道shutdownGracefully(...)的那个。EventLoopGroup然后所有现有通道将自动关闭,重新连接尝试应被拒绝。如果这不起作用,请随时提出问题。

如果您使用的是 Netty 3.x,不幸的是,没有自动机制可以做到这一点。您必须确保关闭所有通道,因为事件循环在有通道要管理之前不会自行终止。更多信息请参考NioClientChannelFactory(《线程生命周期与优雅关机》)

于 2013-11-04T08:23:19.073 回答