Node.JS開源:StickPackage- TCP 粘包、分包解決方案

KanCopeland 7年前發布 | 27K 次閱讀 TCP/IP Node.js Node.js 開發

#Stickpackage

StickPackage,NodeJs中TCP粘包、分包解決方案!

配置介紹

  1. 提供對TCP粘包處理的解決方案
  2. 默認緩沖512個字節,當接收數據超過512字節,自動以512倍數擴大緩沖空間
  3. 本默認采用包頭兩個字節表示包長度
  4. 默認采用大端接模式接收數據
  5. 可以配置自定義包頭長度[后期迭代]
  6. 可以配置大端小端讀取[后期迭代]

安裝

npm i 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]}

 

 

項目主頁:http://www.baiduhome.net/lib/view/home/1491393407672

 

 本文由用戶 KanCopeland 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!