Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用javascript处理TCP数据_Javascript_Node.js - Fatal编程技术网

用javascript处理TCP数据

用javascript处理TCP数据,javascript,node.js,Javascript,Node.js,我正在nodejs中通过TCP接收一块数据。我不擅长javascript,我想我应该寻求帮助 基本上,我得到一块以\r\n结尾的数据 Data chunk Door1,10:02:24\r\n Door1,10:05:25\r\n Door2,10:11:02\r\n Door1,10:24:34\r\n etc. 我不知道如何处理这个问题。起初我认为每个数据块只包含一行。就在那时,我做了一个 newData = data.split('\r\n'); 但是现在数据块正在大量出现!我应该如何

我正在nodejs中通过TCP接收一块数据。我不擅长javascript,我想我应该寻求帮助

基本上,我得到一块以\r\n结尾的数据

Data chunk
Door1,10:02:24\r\n
Door1,10:05:25\r\n
Door2,10:11:02\r\n
Door1,10:24:34\r\n
etc.
我不知道如何处理这个问题。起初我认为每个数据块只包含一行。就在那时,我做了一个

newData = data.split('\r\n');

但是现在数据块正在大量出现!我应该如何处理大数据块以将其拆分为大小不同的位进行处理?

如果您想在接收到每一行时处理它们,可以使用模块,该模块将回调接收到该行的函数

它的实现不是火箭科学,它只是读取每个块,并将它们添加到缓冲区中,直到找到新行。然后它获取内容,直到第一个新行和回调函数。它一直运行,直到在以前的数据中没有新行为止。之后,您可能会留下一些数据,这些数据将一直保留,直到收到一个新的数据块,并将继续这样做

下面是一个快速实现:

var net     = require('net'),
    carrier = require('carrier');

var server = net.createServer(function(conn) {
  var my_carrier = carrier.carry(conn);
  my_carrier.on('line',  function(line) {
    console.log('got one line: ' + line);
  });
});
server.listen(4001);