如何每X秒发送一次websocket流?
可以从Node控制台中的additionalSocket查看数据的设置:
io.on('connection', (client) => {
client.on('subscribe', (interval) => {
additionalSocket.on('message', (data) => {
console.log('data', data)
})
setInterval(() => {
client.emit('timer', new Date())
}, interval)
})
});
设置setInterval在additionalSocket事件中的位置,但“忽略”间隔
io.on('connection', (client) => {
client.on('subscribe', (interval) => {
additionalSocket.on('message', (data) => {
console.log('data', data)
setInterval(() => {
client.emit('data', data)
}, interval)
})
})
});
设置let未定义并将undefined发送到客户端
我知道这里存在一个上下文问题,因为additionalSocket.on中的闭包回调无法访问外部作用域。
io.on('connection', (client) => {
client.on('subscribe', (interval) => {
let stream
additionalSocket.on('message', (data) => {
stream = data
})
setInterval(() => {
client.emit('stream', stream)
}, interval)
})
});
此服务器位于节点中,客户端位于React中。 的谢谢!
答案 0 :(得分:0)
通过使用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)