netty消息确认机制
1、接受消息和接受链接的逻辑类似,其是调用Abstract N i o Unsafe的内部类Ni o Byte Unsafe的read方法。首先判断根据条件判断当前数据是否需要读取,如果不需要则设置read Pending=false。因为如果为true则代表当前正在等待read事件或者正在读取。
2、重置我们的接受缓冲的处理器Re c v Byte B u f All o ca tor Handle。
3、初始分配给我们1024字节大小的接受消息的byte bu f,然后我我们利用该byte bu f从我们的socket channel获取数据。
4、每次统计当前获取的字节大小,如果小于等于0则跳出循环,如果读取的字节数小于0则代表channel有异常
直接关闭。
5、如果正常读取到数据我们会统计读取的次数total Messages,如果读取的次数大于max Message Per Read则也会跳出循环。
6、每次读取到一部分数据都是传递给channel Read方法,所以我们需要一个handler(Byte To Message Decoder)来帮我们累计一个完整的数据。
7、再整个数据读取完毕之后会分别调用Channel Read Complete()来设置read Pending=true。 pending
8、最后就是如果我们的read Pending=false且不是auto read则代表我们取消注册read事件,因为我们不支持自动读且当前的读已经读完了 所以不能注册read事件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。