NodeJS缓冲区分割,string和二进制

我有3个信息需要发送一个UDP数据包,userID(int),authentication码(string)和二进制数据。

我将如何能够立即发送这些项目,并能够在另一端拆分它们。

我已经尝试连接三个缓冲区的信息,但不能想办法在另一端拆分它们,因为UID和授权码的长度会有所不同。

假定以下适用

  • 用户ID – 无符号的32位整数
  • authentication码 – 一些string让我们说100个字符的长度
  • 二进制数据 – ..

填料

var BinaryData=/*Your binary data*/; var bufToSend = new Buffer(3+100+BinaryData.length); bufToSend.writeUInt32LE(INTEGER,0); bufToSend.write(STRING,4,STRING.length,"ascii"); BinaryData.copy(bufToSend,105,0,BinaryData.length); 

拆包

 var userID = bufFromUDP.readUInt32LE(0); var authCode = bufFromUDP.slice(4,104); var BinaryData = bufFromUDP.slice(105,bufFromUDP.length); 

您也可以尝试在字段之间添加“分隔符”。 恩。

 var sep = new Buffer(2); sep.write(";",0,1,'ascii'); 

当做Buffer.concat([userID,sep,authCode,sep]); 在每个字段之后添加sep字节。