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

发布于 2022-09-11 16:57:02 字数 126 浏览 12 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

独闯女儿国 2022-09-18 16:57:02

监听数据

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

序列化数据

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

苦妄 2022-09-18 16:57:02

你要监听终端设备发送过来的数据,我觉得要注意两点:
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发送测试
图片描述
服务端接收的数据打印
图片描述
这都是测试代码,说明原理,题主可以往这些方向去考虑

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文