因为现在要做的是持久连接的socket编程,所以没有办法先在on('data')的时候将chunk连接起来,在on('end')的时候再对所有接收的数据进行操作。
在这种情况下对方可能随时发不同长度的信息过来,而我也要对发来的信息马上做出回应。虽然信息长度不一,但信息头部行有length属性,但是我不知道如何控制on('data')时如何只读取一行或者指定长度的数据,怎么办?
8 回复
you can cut or compose data
.
var newData = new Buffer(100);
sock.on("data",function(data){
// cut or compose `data` to `newData`
});
签名: 交流群244728015 《Node.js 服务器框架开发实战》 http://url.cn/Pn07N3
这是tcp长连接最基本的知识呀。。。on(‘data’) 中只管接受数据,长度不满就一直收并拼接,长度满了就处理(如果有多出来剩余的部分留住继续拼)
buffer的拼接可以用内置的 Buffer.concat(list, [totalLength]) 方法