我有一个基于此套接字ID,我需要获得用户详细信息.那么,我可以将用户详细信息存储在Socket对象中吗?

如何在Socket对象中添加用户详细信息?

在这里,我可以将此套接字ID存储在数据库中,但每次用户连接或断开连接时,我都需要更新它.在这种情况下,它会影响应用程序的性能.

我还在这里实现了集群模式,所以我不会将这些详细信息存储在任何全局对象中.

这是在Socket对象中存储用户详细信息的方法吗?

推荐答案

这个解决方案对我很有帮助

io.on("connection", async (socket) => {
   socket.data = {
    userId: "",
  };

   const allSocketUsers = await io.in(roomId).fetchSockets();

   
  const postCreator = allSocketUsers?.find((userSocket) => {
    return userSocket.data.userId === id;
  });

   console.log(postCreator.id);
});

Node.js相关问答推荐

如何在Node.js 中设置图表js的背景色

如何在MongoDB中更新嵌套数组

使用 playwright 获取页面中同一 url 的所有响应

连接到在线 redis 数据库时出错

找不到模块bcryptjs

在路由上使用中间件时,Nodejs Express 应用程序失败

使用 NPM 三个 mocha+typescript 进行测试

当其中一个端点不工作时,如何使用 axios.all() 调用多个 API?

firebase/messaging 不提供名为 getToken 的导出

如何从动态Typescript 文件加载模块

如何删除mongodb中嵌套数组中所有出现的数组元素

适用于 Windows 的 NVM 无法正常工作?

Webpack TypeScript module.hot 不存在

运行摩卡+伊斯坦布尔+通天塔

JavaScript 异步编程:promise 与生成器

Puppeteer:如何提交表单?

npm install 给出警告,npm audit fix 不起作用

处理快速异步中间件中的错误

我应该如何在 webpack 中使用时刻时区?

'node' 未被识别为内部或外部命令