Netty多个客户端,断开连接会影响所有客户端

时间:2015-10-07 09:13:21

标签: java sockets client-server netty

我正在开发基于Java服务器客户端的应用程序,并使用Netty(4.0.27.Final)进行TCP套接字连接。我遇到了客户端的问题。

在客户端中,我使用一个BootStrap,一个NioEventLoopGroup用于多个客户端(100多个并发客户端),并为每个新客户端连接调用以下内容。

b.handler(new MyConnectionInitializer());
b.connect(IP, PORT).sync().channel().closeFuture().sync();

现在,在完成工作后,每个客户端都会调用ctx.disconnect()。调用它之后,所有客户端都会收到ChannelInactive并连接到服务器,以便所有客户端断开连接。虽然我只是希望只有调用ctx.disconnect的客户端才能断开连接。

我应该调用其他函数而不是ctx.disconnect()吗?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

您应该使用close()代替disconnect()。据我所知disconnect()实际关闭了连接(以及可能仍然打开的所有其他频道),而close()仅关闭当前频道。

如果我写错了,请有人纠正我。