【问题标题】:Real time location sharing using socket.io nodejs使用 socket.io nodejs 进行实时位置共享
【发布时间】: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


【解决方案1】:

您是否考虑过为此使用 redis?它是一个内存数据结构存储,用作数据库、缓存和消息代理。

【讨论】:

  • 实际上已经在应用程序中实现了 socket.io,我也将它用于聊天。现在主要是当他移动或其他位置时将尽快共享位置,它将检查数据库中的套接字ID。
  • 我看到了一些使用套接字维护数组的示例。当新用户连接到套接字时,它将套接字 id 存储在数组中,当它断开连接时,从数组中删除值。当我找到一对一共享时,这是唯一的解决方案
猜你喜欢
  • 2018-05-15
  • 2018-05-30
  • 2018-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-08
  • 1970-01-01
  • 2020-07-24
相关资源
最近更新 更多