这笔记整理得很乱,抱歉抱歉,尽量写好些吧。后面再继续整理下。
最近的netty工程,遇到几个问题先记下来:
1、服务端如何表示每一个链路,然后当业务需要时,如何找到这个链路下发指令进行通信?
参考https://segmentfault.com/q/1010000005112923/a-1020000016928422 ,总结下做法就是:每次接受客户端连接时把这些客户端的id记下来,然后服务器对具体的id下发指令。
2、如何处理粘包问题?
有些知识点做些整理:
1、ChannelFuture:接口,
2、ChannelPipeline:
对接报文的处理流程如下:
1、客户端连接;
2、客户端发送报文;
3、先判断报文是否属于其中一种协议格式?如果是其中一种协议,则进行第4步,否则,断开该连接的客户端;
4、对报文进行解析,从报文中获取该设备id;
5、进行报文交互;
遗留问题:
1、如果报文出现错误,需不需要断开连接;
2、如果某个链路连接后台后长时间不发送报文,会占用服务器资源?需不需要将该链路断开?
这篇博客记录了在使用IntelliJ IDEA搭建Netty服务时遇到的问题及其解决方案。主要讨论了如何标识和查找特定链路以发送指令,以及如何处理网络通信中的粘包问题。通过ChannelFuture和ChannelPipeline理解报文处理流程,并提出了针对报文错误和长时间无报文交互的链路管理策略。
390

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



