Node.js 每x秒向客户端发送websocket

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) =>

如何每X秒发送一个websocket流

可从节点控制台中的additionalSocket查看数据的设置:

设置,其中setInterval位于additionalSocket事件中,但“忽略”间隔

未定义let并将未定义发送到客户端的设置

我知道这里有一个上下文问题,因为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中。
谢谢

通过使用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)