【问题标题】:Storing room data on Socket.io在 Socket.io 上存储房间数据
【发布时间】:2020-05-02 06:16:48
【问题描述】:

我正在使用 Socket.io 制作一个网络应用程序,我想为每个房间存储数据。数据包括一些关于用户的数据,以及房间本身等,都在一个 JavaScript 对象中。

现在我的问题是,如果我只是在我的 server.js 上有一个数组 let rooms = [],我可以操纵并使用它来存储数据,这样可以吗?

如果我部署到生产环境并在网站上有用户,这是否可以正常工作并按预期工作?我不确定是否需要在这里实现数据库。想法?

【问题讨论】:

    标签: websocket socket.io


    【解决方案1】:

    这真的取决于你想从中得到什么。使用本地状态(即您对 let rooms = [] 所做的事情)会正常工作(我已经这样做并取得了成功)。

    缺点是您的状态将保存在一台服务器的内存中。因此,如果该服务器出现故障或您重新启动它,您将失去所有状态(所有房间)。此外,如果您需要扩展到一台服务器之外,那么这将不起作用,因为每台服务器都有不同的房间数据列表。根据他们连接到的服务器,您的客户会获得不同的视图。

    这种方法以前对我有用的原因是因为我的数据非常短暂,我可以接受丢失它。我也没有缩放需求。

    总之,如果你的情况是这样的:

    1. 在任何给定时间,您在一个服务器实例上处理的用户数不会超过您的处理能力
    2. 如果您的数据被重置也没关系

    然后继续这个 - 它对我来说非常有用!否则,如果您想确保您的房间数据不会被重置,或者如果您需要多台服务器,您将需要数据库之类的东西。

    【讨论】:

      猜你喜欢
      • 2018-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 2019-05-13
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      相关资源
      最近更新 更多