使用nodejs写一个监听程序来获取终端发送到服务器端的数据

我有一个物联网的终端设备,这个设备会发送数据给云服务器的指定端口(数据包括设备号,基站信息,光照强度温度等)。现在我想用nodejs在服务器端写一个监听程序,监听本地端口终端发送过来的数据,我怎样才能监听到这些数据,并将这些数据序列化呢?

阅读 5.6k
2 个回答

你要监听终端设备发送过来的数据,我觉得要注意两点:
1、中断设备是怎么发送数据到端口的,是通过socket连接到指定ip和端口,还是通过http协议连接到指定端口。node的http和net模块应用的场景不一样。
2、终端可以发送JSON字符串,然后在node端解析一下即可。
http简单服务器的实例

const http = require('http');

function parseJSON(req, res) {
  let body = "";
  req.on('data',function(data){
    body += data;
  });
  req.on('end',function(data){
    //接收完数据,这个地方可以数据处理
    console.log(body);
    res.writeHead(200)
    res.write('已接收数据');
    res.end();
  });
  req.on('error',function(err){
    res.writeHead(400)
    res.write('接收数据错误');
    res.end();
  });
}

const server = http.createServer((req, res) => {
   parseJSON(req, res);
});

server.on('clientError', (err, socket) => {
  socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
});

server.listen(8000);

postman发送测试
图片描述
服务端接收的数据打印
图片描述
这都是测试代码,说明原理,题主可以往这些方向去考虑

监听数据

可以用抓包软件, 例如 wireshark, tcpdump 等, 或者调用 libpcap 之类的组件去抓.

序列化数据

需了解终端与服务器的通讯协议, 数据是如何交换的.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题