0

我们正在通过 DeepStream 为赌场游戏制作游戏服务器,我们正在用 Node JS 编写它。我正在使用 DeepStream List 来制作具有最小和最大客户端限制(列表计数)的房间。一个房间最多只能有 5 个客户。因此,如果我说我们有 10000 个房间可用,然后有新用户来连接,那么我如何快速检查免费房间或 DS 列表,这些列表对于新连接是免费的,基本上我需要搜索哪个列表有空闲空间或哪个列表的计数小于 5。最快的方法是什么

4

1 回答 1

2

如果您使用的是深度流数据库连接器,您可以编写一个查询,从数据库中获取未满的房间并将它们作为深度流列表提供。使用像 ReThinkDB 这样的实时数据库,可以使用 change-feeds 实时更新列表,否则您需要使用查询轮询数据库。
然而,这留下了用户同时加入房间的问题。这也许可以通过阀门规则来处理,请参见此处。避免该问题的更传统方法是使用中央RPC 提供程序处理加入房间的请求,仅在有可用空间时接受。如果您不使用数据库,您可能需要设置一个提供程序,该提供程序负责维护带有空间的房间列表,并负责处理 RPC 加入请求。

于 2017-01-31T11:15:09.080 回答