问题来源
使用netty 接受消息时,channelReadComplete 执行了,但是channelRead 却没有执行.
问题详情参见:
Netty channelRead never called
寻找解决方案
1.官网文档
两个意思差不多都是执行完传给下一个handler. 执行没有先后顺序.
最后在知乎里看到这样一段话:
当添加了消息处理的handler,如lineBasedFrameDecoder或者FixLengthFramDecoder等,这样的话当消息没有到结束标志时,会进到complete方法里,到达消息的结束标志,才会调用read方法。
2.验证
在消息末尾添加”\n” 结束符,解决.
原因
使用lineBasedFrameDecoder 需添加结束符.
有不妥当之处,麻烦指出
本文探讨了在使用 Netty 进行消息接收时遇到的问题:channelReadComplete 被触发但 channelRead 未被调用。通过分析发现,这与使用 lineBasedFrameDecoder 有关,需要在消息末尾添加结束符来确保完整的消息帧被正确处理。
1512

被折叠的 条评论
为什么被折叠?



