【问题标题】:Netty Multiple Clients, disconnecting one affects allNetty 多个客户端,断开一个会影响所有客户端
【发布时间】:2015-10-07 09:13:21
【问题描述】:

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

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

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

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

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

任何帮助表示赞赏。

【问题讨论】:

  • ctx.deregister 在这里有什么帮助吗?

标签: java sockets client-server netty


【解决方案1】:

您应该使用close() 而不是disconnect()。据我了解disconnect() 实际上关闭了连接(以及所有其他可能仍处于打开状态的通道),而close() 仅关闭当前通道。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 2012-12-31
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多