node.js - 使用node.js rest api在客户端发送数据可以每5s完成一次吗?
问题描述
我想每 5 秒使用 node.js 向客户端发送数据。这是我要发送以进行实时定位的坐标数据。我使用 mqtt 客户端、firebase 实时数据库来存储和检索数据并使用颤振来显示实时位置。我的问题是如何将每 5 秒的数据从 node.js 发送到客户端
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
var http = require('http');
const port = process.argv.slice(2)[0];
const app = express();
app.use(bodyParser.json());
const mqtt = require('mqtt')
const client = mqtt.connect('mqtt://broker.hivemq.com')
var firebase = require('firebase');
const server = http.Server(app)
//fetching data from firebase realtime database
function readDatas() {
let coordinateData = new Array()
loraRef.on('value', (snapshot) => {
snapshot.forEach(childSnapshot => {
coordinateData.push(childSnapshot.val().message);
// console.log('ok');
},
);
});
//inserting data into firebase realtime database
function insert_message(topic, message, packet) {
loraRef.push({
message
})
}
//inserting data from mqtt into firebase realtime database
function mqtt_messsageReceived(topic, message, packet) {
if(message){
let messageObject = JSON.parse(message)
insert_message(topic, messageObject, packet)
}
};
client.on('message', mqtt_messsageReceived)
//sending data to http client
let dataCoordinate = readDatas()
app.get('/coordinate', async(req, res) => {
console.log('Returning coordinate list');
if(dataCoordinate.length !==0){
res.send(dataCoordinate[0]);
//res.sendStatus(dataCoordinate)
console.log(readDatas()[0]);
}
});
解决方案
推荐阅读
- python - 如何正确编写返回 numpy 数组的 sagemaker tensorflow input_handler()?
- ios - 模拟器的新 Flutter 应用程序构建失败,权限被拒绝
- c# - OpenTK-GL。不存在
- python - 如何在 Django html 页面中显示外键数据?
- linux - 无法在 linux 上编译“http”rust crate
- java - 运算符不存在:字符变化 =?,postgres JDBC 占位符不起作用
- java - 即使使用 values-night 也无法在我的应用程序中禁用夜间模式
- javascript - Javascript:如何将获取的返回值存储到全局变量中?
- matlab - 替换落在Matlab中三角形内的值
- node.js - Mongoose 预保存中间件错误是空对象