我使用了Netty版本2.6.0.Final。
如果我在通道正确认识Netty的文档,要求断开()应该允许我这样称呼连接()稍后重新连接。 然而,当我打电话给我的SimpleChannelHandler子类的断开(),这两个channelDisconnected()和channelClosed()被调用。
我在调试模式下打开此基本上事件的顺序是:
- 我对我的频道呼叫断开()
Channels.disconnect()被调用:
public static ChannelFuture disconnect(Channel channel) { ChannelFuture future = future(channel); channel.getPipeline().sendDownstream(new DownstreamChannelStateEvent( channel, future, ChannelState.CONNECTED, null)); return future; }
最终,NioSocketPipelineSink.eventSunk()被调用,以及相关的部分是:
case CONNECTED: if (value != null) { connect(channel, future, (SocketAddress) value); } else { channel.worker.close(channel, future); } break;
如此以来值为null和状态连接,通道被关闭(虽然根据这里与空连应注明断开,不一定密切的请求。
所以我失去了一些东西在这里? 什么是断开的点(),如果它只是导致通道被关闭?
这是不是一个巨大的问题,因为如果我需要,我可以只创建一个新的渠道,我的情况,但是从初步检查,这似乎是一个错误的Netty,除非我只是误解,这是如何工作的,或则我]丢一些愚蠢的。