有什么更好的方法将数据更新发送到.net中的客户端?

时间:2011-11-03 12:30:45

标签: .net wcf communication remoting message-queue

当用户更新我们的.net应用程序中的某些数据时,我们的服务器会向感兴趣的客户发送更新,告知他们此数据已更新。目前,每个客户端也是一个服务器(即,他们在端口上侦听),服务器会跟踪哪些客户端已登录,并通过远程处理向他们发送更新消息。

这很有效,但由于必须配置防火墙以允许访问客户端PC,因此存在潜在问题。

我有几种方法可以解决这个问题,但每种方法都有其缺点。我目前正在调查wcf或像msmq这样的排队系统,但我对这些没有任何经验,学习曲线似乎很陡峭。我想到的其他选择是:

  • 让客户调用一个在收到消息之前不会返回的服务器方法 - 超时,断开连接等潜在问题?
  • 更改为WCF并使用回调 - 不确定这是否要求客户端成为端点?
  • 使用计时器并每隔几秒检查一次消息 - 可能会泛滥网络

还有其他方法可以实施吗?我认为这是一个可能已经解决的问题所以希望实施将是直截了当的。理想情况下,没有连接的客户端应该错过消息,这可以用于其他类型的更新 - 例如。进度更新服务器作业等

3 个答案:

答案 0 :(得分:1)

如果客户端间歇性连接,但仍需要接收更新消息,那么MSMQ非常简单。

答案 1 :(得分:1)

WCF和回调在这种情况下运行良好。请参阅这个不同的问题的答案:WCF - client callback recommended? WCF在传输和连接配置(超时等)方面相当灵活。

答案 2 :(得分:-3)

您可能想看看ClickOnce

以下是有关选择ClickOnce更新策略的文章:http://msdn.microsoft.com/en-us/library/s22azw1e.aspx