下面是回显服务器的ChannelHandler
。
Netty 框架将调用 channelReadComplete()
方法来通知处理程序,对 channelRead()
的最后一次调用是当前批处理中的最后一条消息。
我的问题是,由于数据是在中继线上传输的,Netty 如何知道一批消息
何时完成?
最佳答案
channelReadComplete() 一旦没有更多数据可从底层传输读取,就会被触发。在谈论 SocketChannels 时,这将是以下两种情况之一:
- read(...) 返回 0
- read(...) 得到一个传递给它的缓冲区,该缓冲区有 1024 个字节要填充,但填充的字节数少于 1024 个。
关于java - netty如何确定读取何时完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28473252/