【发布时间】:2019-11-14 08:16:09
【问题描述】:
我正在尝试使用 express 将从 MQTT 收到的响应输出到节点服务设置。
每秒钟都会从mqtt服务收到一条json字符串消息。
响应将在 /main API 上输出,我将从我正在开发的 Ionic 4 移动应用程序中调用它。
但是,现在我无法在服务器本身上显示数据只是为了检查,我还没有想到如何在服务器上不断更新数据。页面不刷新它只是继续加载。
const mqtt = require('mqtt')
const express = require('express')
const PORT = 8000
const app = express()
var client = mqtt.connect("mqtt://bac.com")
client.on('connect', () => {
console.log("Connected")
client.subscribe('/test')
})
app.get("/", (req, res) => {
res.send("ROOT");
});
app.get("/main", (req, res) => {
client.on('message', (topic, message) => {
res.send(message)
})
});
app.listen(PORT, () => {
console.log(`Server is listening on port ${PORT}`);
});
【问题讨论】:
-
服务器端事件或网络套接字 - 前者可能是“更轻”且更容易实现的选项,因为数据将是从服务器到客户端的单向处理
-
当您可以在 HTML 页面中订阅时,为什么要订阅服务器端是通过 Websockets 使用 MQTT 的自我
-
@hardillb 我正在尝试创建一个不断发送响应 (json) 的 API。可以通过在 html 页面中显示,但我不想这样做。
-
HTTP REST 接口无法继续发送结果,如果您想要持续的结果流,请在最终消费者处使用 MQTT
标签: javascript node.js rest express mqtt