NodeJs的TCP中的粘包、分包问题的解决方案!
NodeJs的TCP中的粘包、分包问题的解决方案!
-西门吹牛 发表于1年前
NodeJs的TCP中的粘包、分包问题的解决方案!
  • 发表于 1年前
  • 阅读 49
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

StickPackage,https://github.com/lvgithub/stickPackage  NodeJs中TCP粘包、分包解决方案!配置介绍提供对TCP粘包处理的解决方案默认缓冲512个字节,当接收数据超过512字节,自动以512倍数扩大缓冲空间本默认采用包头两个字节表示包长度默认采用大端接模式接收数据可以配置自定义包头长度[后期迭代]可以配置大端小端读取[后期迭代]

源码地址:https://github.com/lvgithub/stickPackage

使用方法

var Stick = require('./stickPackage');

let stick = new Stick();

// 设置收到完整数据触发器
stick.onData(function (data) {
console.log('receive data,length:' + data.length);
console.log('receive data,contents:' + JSON.stringify(data));
});

// 构造一个buffer,包含两个数据包,10个字节
let bytes = Buffer.from([0x00, 0x02, 0x66, 0x66, 0x00, 0x04, 0x88, 0x02, 0x11, 0x11]);
console.log('log:传入两个包,一次Put[验证一次性Put数据包]');

// 处理粘包
stick.putData(bytes);

// 结果显示
// receive data,length:4
// receive data,contents:{"type":"Buffer","data":[0,2,102,102]}
// receive data,length:6
// receive data,contents:{"type":"Buffer","data":[0,4,136,2,17,17]}

 

标签: Node.js tcp
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 1
码字总数 262
×
-西门吹牛
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: