在Netty 4中,当一个写操作(比如向NioSocketChannel写入数据)的ChannelFuture何时确切地变为“完成”?Netty是否会等待一个ACK数据包?在ChannelPipeline中的输入和输出处理器之间是否存在标记写入futures已完成的相互依存关系?
ChannelOutboundBuffer.remove() @ ChannelOutboundBuffer.java:263
设置了未来的成功,并在消息被写入套接字后由NioSocketChannel.doWrite(ChannelOutboundBuffer) @ NioSocketChannel.java:264
调用。
请注意,被写入套接字并不一定意味着消息已被发送(部分或完全),只意味着它已被写入TCP层中套接字的发送缓冲区。