打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
websocket粘包处理
     websocket 底层使用的tcp 协议。 当一次发送数据过长时,tcp 会把数据封成多个包发送;同样当数据过短时, 会把数据合并成一个包发送,这种现象就是粘包。粘包的情况也有可能是接收端造成的。[参考] (  http://m.blog.csdn.net/duotemplar/article/details/73193038 ). tcp协议相关的知识百度之。 粘包出现必然对应拆包处理。处理方案:

eg: 现在通过websocket传输: A 数据, B数据 (只讨论粘包的情况) 


i 接收(应用层)AB数据
根据数据的帧信息,先解析A数据,然后解析B数据

ii 接收AB1、B2(B数据分成B1,B2)

解析A数据;根据B1的帧信息(包含数据是否完整、数据长度、数据类型等)可以判断不是完整数据,缓存B1数据;
继续接收数据B2,然后解析B1B2数据(不包含B1、B2的帧信息);

iii 接收A1、A2B (A数据分成A1,A2)

根据A1的帧信息可以判断不是完整数据,缓存A1数据;继续接收A2B数据,解析A1A2数据;然后解析B数据

iv 接收A1、A2B1、B2(A数据分成A1,A2 B数据分B1,B2)

缓存A1;解析A1A2;缓存B1;解析B1B2。  
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
网络协议之(Http、Socket、WebSocket)
API · 小程序
跟着尚云学VLAN(十):加速VLAN间通信
太二漫画如何清除本地缓存数据信息
http数据包; 截获; 还原
大厂最爱考的前端面试题:计算机网络基础
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服