当用户更新我们的.net应用程序中的某些数据时,我们的服务器会向感兴趣的客户发送更新,告知他们此数据已更新。目前,每个客户端也是一个服务器(即,他们在端口上侦听),服务器会跟踪哪些客户端已登录,并通过远程处理向他们发送更新消息。
这很有效,但由于必须配置防火墙以允许访问客户端PC,因此存在潜在问题。
我有几种方法可以解决这个问题,但每种方法都有其缺点。我目前正在调查wcf或像msmq这样的排队系统,但我对这些没有任何经验,学习曲线似乎很陡峭。我想到的其他选择是:
还有其他方法可以实施吗?我认为这是一个可能已经解决的问题所以希望实施将是直截了当的。理想情况下,没有连接的客户端应该错过消息,这可以用于其他类型的更新 - 例如。进度更新服务器作业等
答案 0 :(得分:1)
如果客户端间歇性连接,但仍需要接收更新消息,那么MSMQ非常简单。
答案 1 :(得分:1)
WCF和回调在这种情况下运行良好。请参阅这个不同的问题的答案:WCF - client callback recommended? WCF在传输和连接配置(超时等)方面相当灵活。
答案 2 :(得分:-3)
您可能想看看ClickOnce。
以下是有关选择ClickOnce更新策略的文章:http://msdn.microsoft.com/en-us/library/s22azw1e.aspx