1

我们有大约 50 个用户使用的 .NET 2.0 Windows 应用程序。应用程序中的主要 UI 元素是交互式甘特图 (iLOG Gantt 3.0)。当一位用户在甘特图上进行更改时,我们希望在所有客户端上更新更改。

有人可以建议我们如何有效地实施这一点吗?

到目前为止的解决方案候选者是

  • 轮询数据库服务器以获取每个连接节点的更改(!!)
  • 基于消息队列的解决方案(发布-订阅模型)

我们还有其他选择吗?

4

1 回答 1

1

50 个用户是一个小数目。如果做得好,数据库轮询不会产生任何重大影响,这是最简单的方法,不需要任何额外的架构部件。

如果您担心可扩展性问题,一个相对简单的替代方案可能是在数据库服务器上运行一个基于 TCP 或 UDP 套接字的服务,客户端将连接到该服务。然后它会定期轮询数据库,并在发生更改时向任何连接的客户端发送信号。

于 2012-10-10T09:59:06.760 回答