无法使用Node.js网络模块向GPS设备FM1125发送确认

时间:2018-07-03 07:36:36

标签: node.js

我正在尝试从GPS设备Teltonika FM1125捕获数据。 该设备首先发送IMEI编号,并在确认后发送坐标数据。 我收到IMEI号码,但是当我尝试发送确认时,它仍在发送相同的旧数据。

我正在使用nodejs net模块创建服务器。这就是我尝试过的。

const server = net.createServer((c) => {
  console.log('client connected');
  c.on('data', (data) => {
     console.log(data);
     var textChunk = data.toString();
     if(textChunk.length<20){
            c.write("01", function () {
              console.log('response send to device');
            });
     }
    console.log(textChunk);    
  });

  c.on('end', () => {
      console.log('client disconnected');
  })
});

server.on('error', (err) => {
  throw err;
});

server.listen(9030, () => {
  console.log('server bound');
});

1 个答案:

答案 0 :(得分:0)

我相信您正在将字符串“ 01”写入套接字,当写入套接字时,该字符串将被编码为UTF-8字符串。您可以将参数传递给.write()方法以覆盖此编码。这不会将字节0x01写入套接字,而是会将字节0x30 0x31写入套接字。这2个字节代表字符串“ 01”。

最好将UInt8Array传递给.write()方法,该方法包含一个值为0x01的字节。