【发布时间】:2020-09-28 15:41:58
【问题描述】:
我正在尝试在多个用户之间共享实时位置并将套接字 id 存储在数据库中并从数据库中获取 id 然后将位置发送给特定用户。这是一对一的位置共享。问题是当用户数量增加时,与数据库的交互也会增加,这是主要缺点。有没有其他方法可以在代码端存储socket id 不要每次都从数据库中获取socket id
【问题讨论】:
-
你能告诉我们你的代码吗?
-
对不起,我无法显示代码,它搞砸了。我只是在寻找专家意见。如果您提供建议,真的会很有帮助
-
你好,很遗憾你不能分享,但首先我可以说你不能信任在每个连接中创建新的 socket.id 属性。有你使用的身份验证系统吗?也许使用用户的实际 db id 来存储数据?
-
我正在使用 JWT 和护照。
-
我找到的快速解决方案是一个维护对象,其键为 user_id,值为 socket_id,它现在工作正常,它帮助我减少对数据库的调用,因为我直接从 socket_id 访问对象并发出数据以要求用户。但我仍然不确定它是否是真实的解决方案。我也在断开连接时从对象中删除 id
标签: javascript node.js socket.io