7

我目前正在制作一个在线多人国际象棋游戏。我想知道用户触发器是否适合登录每个动作。

然后,使用 nodejs,我会重复检查触发器表并更新玩家和观察者的视觉效果。

由于我只需要在数据库中进行更改,因此视觉方面会自动跟进(使用循环功能检查数据库中的更改数据)。这样做的目的是将视觉效果与制作游戏所涉及的逻辑分开。

你们中有人会推荐这种技术还是根本不行?

4

1 回答 1

7

您为您的任务描述了一种可能的技术解决方案。但我强烈建议不要这样做。

这不会很好地扩展 - 它会为您的数据库和应用程序服务器增加大量开销和负载。

还有其他轻量级的可能性可以更好地扩展:

  • 使用带有node_redis客户端的消息队列(例如)redis。它具有内置的pubsub语义。
  • 抽象您的数据库调用并将所有数据库更新推送到消息队列。
  • 例如,您可以使用像jquery-streamjquery-socket这样的 HTTP 流媒体,而不是使用“重复”功能(AJAX 轮询)来获取状态更新。这避免了为每个客户端更新打开新的 HTTP 连接的开销。
  • 在服务器端使用 nodejs 的事件驱动特性将新事件推送到客户端连接。
于 2012-04-25T06:47:33.633 回答