是否有通过网络同步数据列表的模式?

maf*_*afu 5 .net c# synchronization network-programming

我有一个服务器应用程序,通过网络向许多客户端提供数据.您可以将数据想象成一个庞大的字符串列表.服务器上的数据可能会更改,需要在所有客户端上同步.

我目前正在使用这种方法:在初始连接时,客户端应用程序请求所有当前数据(可能是很多字节).然后,它订阅任何数据的更新(添加,更改和删除).

除非在发送初始数据列表和订阅更改的应用程序之间在服务器上更改数据,否则此方法正常工作 - 在这种情况下,客户端会错过一些更新并在不知情的情况下处理过时的数据.

我认为这是一种非常常见的情况,因此应该有一种解决问题的模式.我正在使用C#4和WCF,但我认为该模式应该与语言无关.

Bri*_*ian 0

我没有这样做的经验,但是...

如果每个“初始连接”包含一个“时间戳”,并且当您订阅时,您订阅“自初始连接的时间戳”以来,那么服务器可以包含自该时间戳以来的所有更改,是吗?

关键是要包含一些客户端和服务器都同意的服务器规范时间概念。

例如代替

void Connect()
Subscribe()
Run Code Online (Sandbox Code Playgroud)

你有

Timestamp Connect()
Subscribe(timestamp)
Run Code Online (Sandbox Code Playgroud)