【发布时间】:2015-06-13 17:12:21
【问题描述】:
read() 的 Javadoc 说:
请求从 Channel 读取数据到第一个入站缓冲区, 如果读取了数据,则触发 ChannelInboundHandler#channelRead 事件, 并触发 ChannelInboundHandler#channelReadComplete 事件,因此 处理程序可以决定继续阅读。
当手动调用channel.config().setAutoRead(false)和read()时,实际读取了多少?假设一个没有编解码器的 TCP 连接,它会读取直到入站缓冲区填满,触发ChannelInboundHandler#channelRead,然后停止读取?
查看proxy example,它会在每个channelRead 中调用一次read(),这似乎意味着read() 和channelRead 事件之间是一对一的。
【问题讨论】: