如何通过 io.emit 发送到达 post 端点的数据? NodeJS + 反应
How to send data which arrived on post endpoint through io.emit? NodeJS + React
我是 MERN 世界的新手,我需要你的帮助。
我正在用 ReactJS 中的图表构建一个小型仪表板应用程序。此应用每 5 秒从 Node.js 服务器接收数据。我想象我的工作流程是这样的:
- 服务器正在根据来自 NodeRED 的 POST 请求接收数据,
- 当触发 POST 请求时,我想获取请求正文并通过 io.emit 将其发送到客户端组件。这是我尝试过的方法,但它不起作用...
.
.
.
let variable1 = 0; <-initial value
io.on("connection", (socket) => {
console.log("Client connected");
io.emit("event1", {name: "Test", value: variable1});
socket.on("disconnect", () => {
console.log("Client disconnected!");
});
});
const postMeasurement = async (req, res, next) => {
const { value } = req.body;
variable1=value;
.
.
.
提前感谢您的宝贵时间和帮助。
您没有发出事件。
io.emit("event1", {name: "Test", value:new_value});
现在您将发出具有正确值的事件。
现在,您可以选择如何实现定期调用。
最简单的是在 setInterval 中,
setInterval(async()=>{
let res = await POST_API_CALL_TO_NODE_RED;
io.emit("event1", {name: "Test", value:res.body.val});
},5000)
首先,使用 io.emit
创建事件
io.on('connection',(socket)=>{
console.log('Client Connected');
io.emit('myevent','data_goes_here');
socket.on('disconnect',()=>{console.log('Client Disconnected')});
});
现在在您的常规 JS 文件上:
var dataGotten;
// recieve event
socket.on('myevent',(data)=>{
dataGotten=data;
});
现在发送回您的 nodejs 文件:
// data comes back in parameter
socket.on('myevent',(data)=>{
dataGotten=data;
socket.emit('gottenEvent',true);
});
为了从 socket.io 收集数据,我们还使用 socket.on
:
io.on('connection',(socket)=>{
console.log('Client Connected');
io.emit('myevent','data_goes_here');
socket.on('disconnect',()=>{console.log('Client Disconnected')});
socket.on('gottenEvent',(isTrue)=>{
if(isTrue){
console.log('Client Successfully Recieved Message!');
}
}
});
我是 MERN 世界的新手,我需要你的帮助。 我正在用 ReactJS 中的图表构建一个小型仪表板应用程序。此应用每 5 秒从 Node.js 服务器接收数据。我想象我的工作流程是这样的:
- 服务器正在根据来自 NodeRED 的 POST 请求接收数据,
- 当触发 POST 请求时,我想获取请求正文并通过 io.emit 将其发送到客户端组件。这是我尝试过的方法,但它不起作用...
.
.
.
let variable1 = 0; <-initial value
io.on("connection", (socket) => {
console.log("Client connected");
io.emit("event1", {name: "Test", value: variable1});
socket.on("disconnect", () => {
console.log("Client disconnected!");
});
});
const postMeasurement = async (req, res, next) => {
const { value } = req.body;
variable1=value;
.
.
.
提前感谢您的宝贵时间和帮助。
您没有发出事件。
io.emit("event1", {name: "Test", value:new_value});
现在您将发出具有正确值的事件。 现在,您可以选择如何实现定期调用。 最简单的是在 setInterval 中,
setInterval(async()=>{
let res = await POST_API_CALL_TO_NODE_RED;
io.emit("event1", {name: "Test", value:res.body.val});
},5000)
首先,使用 io.emit
io.on('connection',(socket)=>{
console.log('Client Connected');
io.emit('myevent','data_goes_here');
socket.on('disconnect',()=>{console.log('Client Disconnected')});
});
现在在您的常规 JS 文件上:
var dataGotten;
// recieve event
socket.on('myevent',(data)=>{
dataGotten=data;
});
现在发送回您的 nodejs 文件:
// data comes back in parameter
socket.on('myevent',(data)=>{
dataGotten=data;
socket.emit('gottenEvent',true);
});
为了从 socket.io 收集数据,我们还使用 socket.on
:
io.on('connection',(socket)=>{
console.log('Client Connected');
io.emit('myevent','data_goes_here');
socket.on('disconnect',()=>{console.log('Client Disconnected')});
socket.on('gottenEvent',(isTrue)=>{
if(isTrue){
console.log('Client Successfully Recieved Message!');
}
}
});