2010-10-22 73 views
3

我需要同步“一个客户端”更新的数据,并且需要在同一应用程序的“其他客户端”(另一个房间)上刷新数据。如何在多客户端应用程序之间同步数据

1 - 哪种做法最好? 我在思考SqlDependency,但应用程序也可以在其他数据库引擎上运行(我忽略它) 我也想到定时器轮询更新,但我真的不想定期检查更改。

有没有人有这个问题?你是怎么解决它的?

2 - 另外。何时必须在UI中更新数据而不妨碍其他PC中的人员的工作?

场景: 3 PC使用相同的数据。创建/更新需要同步的记录(以获取每台PC所做的最后更改)。

我希望我清楚自己的情况。

提前致谢。

回答

0

如果你知道你只有2个应用程序实例,那么你可以使用WCF来完成。当他们想发送更新时,每个客户端充当另一个客户端的服务器。

如何处理两个客户端正在编辑的数据的更新......这可能会非常棘手。这取决于你的数据类型,如果GUI开发来处理更新和这样的事情。

+0

对不起,但我认为你完全不了解我。我在几台电脑上有相同的应用程序。在同一个应用程序中工作我希望如果operator1更改“用户的名称”,更改将反映在operator2和operator3正在工作的应用程序上。我需要将一台计算机所做的更改与其他计算机同步。 – Andres 2010-10-22 21:11:17

+0

它与跨线程通信相同,例如“gui with worker thread”。您有“服务器通知客户端”或“客户端池服务器”。如果您不想池服务器,请使用remoting/wcf/sockets通知客户端。无论如何,您需要为您的数据提供某种锁定(乐观或悲观)。基于事件的同步不足以维护数据的完整性。 – 2010-10-23 17:46:20

+0

因此,您正在提出一种模型,在该模型中,需要更改/刷新PC2,PC3和“其他”上的更新数据的变更数据(在PC1中)的通信将使用套接字。我的3个选择是:1 - 你说的客户之间的套接字(可能是我会聚集一个小型服务器,向其他客户端广播,只是一个想法),2 - 使用sqldependency或类似的东西,3 - 定期轮询使用一个定时器(不好的选择)... – Andres 2010-10-24 03:22:48

相关问题