如何检查我是否使用Net接收了所有数据

时间:2014-06-13 17:58:49

标签: node.js sockets

我有一大块代码,每5-10秒接收一次数据并解析数据。问题是socket.on('data' function...在继续之前没有获得所有数据。我正在使用Net。

代码示例:

var server = net.createServer(function (socket) {
  console.log('CONNECTION: ' + socket.remoteAddress +':'+ socket.remotePort);
  socket.setEncoding('utf8');

  socket.on('data', function (data) {
    handleDataObjects(JSON.parse(data));
  });

}).listen(PORT);

我也试过我在网上看到的东西:

var server = net.createServer(function (socket) {
console.log('CONNECTION: ' + socket.remoteAddress +':'+ socket.remotePort);
socket.setEncoding('utf8');
totalData = "";
socket.on('data', function (data) {
    totalData += data;
});
socket.on('end', function(){
    handleDataObjects(JSON.parse(totalData));
    socket.end();
})
}).listen(PORT);

但是我从来没有进入socket.on('end'),因为仅当套接字关闭时才会显示文档,所以我不确定为什么人们会在这里建议。

0 个答案:

没有答案