Node.js 每x秒向客户端发送websocket
如何每X秒发送一个websocket流 可从节点控制台中的additionalSocket查看数据的设置: 设置,其中setInterval位于additionalSocket事件中,但“忽略”间隔 未定义let并将未定义发送到客户端的设置 我知道这里有一个上下文问题,因为additionalSocket.on中的闭包回调无法访问外部作用域Node.js 每x秒向客户端发送websocket,node.js,reactjs,websocket,Node.js,Reactjs,Websocket,如何每X秒发送一个websocket流 可从节点控制台中的additionalSocket查看数据的设置: 设置,其中setInterval位于additionalSocket事件中,但“忽略”间隔 未定义let并将未定义发送到客户端的设置 我知道这里有一个上下文问题,因为additionalSocket.on中的闭包回调无法访问外部作用域 io.on('connection', (client) => { client.on('subscribe', (interval) =>
io.on('connection', (client) => {
client.on('subscribe', (interval) => {
let stream
additionalSocket.on('message', (data) => {
stream = data
})
setInterval(() => {
client.emit('stream', stream)
}, interval)
})
});
此服务器位于节点中,客户端位于React中。
谢谢 通过使用setTimeout,可以在对setInterval的调用中看到outerVar的值。现在,我可以每x秒将websockets流数据从服务器端传递到客户端
let outerVar
setTimeout(() => {
websocket.on('message', (data) => {
outerVar = data;
})
}, 0)
setInterval(() => {
console.log('outerVar', outerVar);
client.emit('timer', outerVar)
}, 3000)
io.on('connection', (client) => {
client.on('subscribe', (interval) => {
let stream
additionalSocket.on('message', (data) => {
stream = data
})
setInterval(() => {
client.emit('stream', stream)
}, interval)
})
});
let outerVar
setTimeout(() => {
websocket.on('message', (data) => {
outerVar = data;
})
}, 0)
setInterval(() => {
console.log('outerVar', outerVar);
client.emit('timer', outerVar)
}, 3000)