【问题标题】:Socket io emit function making new connection every timeSocket io 每次发出新连接的函数
【发布时间】:2020-12-24 21:26:56
【问题描述】:

我想在socket io中使用react和node js一次在一个emit函数上建立一个连接,但是每次从前端调用emit时它都会建立新的连接。有什么解决办法吗?

Reactjs 代码:

socket.emit('getMessages', 1000,this.state.userData._id,id);

Nodejs 代码:

client.on('getMessages', (interval,sID,rID) => {
 try {
    //get messages from mongodb
  } catch (err) {
    console.log(err);
  }
  client.on('disconnect', () => {
    console.log(`Socket ${client.id} disconnected.`);
  });

});

我想获取消息 ID,但每次我发送新 ID 时,它都会建立新连接并发送以前的消息。

【问题讨论】:

  • 请将代码发布为文本而不是 png。
  • 已添加,抱歉我是这个平台的新手。

标签: node.js reactjs socket.io


【解决方案1】:

如果您希望某些事情只发生一次,您可以使用 client.once(....)。 如果您希望服务器在事件发出后不再侦听该事件,您可以在侦听器末尾添加 client.removeListener('getMessages')。

希望这会有所帮助。不确定您到底在寻找什么行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    相关资源
    最近更新 更多