这是代码
WriteFuture writeFuture = session.write(message);
writeFuture.addListener(this);
writeFuture.awaitUninterruptibly();
sentMessage = writeFuture.isWritten();
在发送消息之前,我将服务器与网络断开(拉线),这样消息就不可能发送出去。但是,sentMessage 无论如何都会返回 true。在wiresharks 输出上,您可以看到三个TCP 重传(显然没有确认)。在更多消息(与第一条消息不同)之后,它将意识到链接已关闭并返回 false。
我认为这是 isWritten() 告诉你数据包是否成功发送,但显然不是这样。我怎么知道包裹是否已经到达?我尝试了 mina 版本 2.0.7 和 2.0.4