在.net中,向客户端发送数据更新的更好方法是什么?

在.net中,向客户端发送数据更新的更好方法是什么?,.net,wcf,communication,remoting,message-queue,.net,Wcf,Communication,Remoting,Message Queue,当用户更新.net应用程序中的某些数据时,服务器会将更新发送给感兴趣的客户端,告诉他们这些数据已更新。目前,每个客户端也是一个服务器(即,它们在端口上侦听)。服务器跟踪哪些客户端登录,并通过远程处理向它们发送更新消息 这工作正常,但存在潜在问题,因为必须配置防火墙以允许访问客户端PC 我认为有几种方法可以解决这个问题,但每种方法都有其缺点。我目前正在研究wcf或类似msmq的排队系统,但我没有任何这方面的经验,学习曲线似乎很陡峭。我心目中的其他选择包括: 让客户端调用一个直到消息传入才返回的服

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

这工作正常,但存在潜在问题,因为必须配置防火墙以允许访问客户端PC

我认为有几种方法可以解决这个问题,但每种方法都有其缺点。我目前正在研究wcf或类似msmq的排队系统,但我没有任何这方面的经验,学习曲线似乎很陡峭。我心目中的其他选择包括:

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

是否有其他方法可以实现这一点?我认为这是一个可能已经解决的问题,所以希望实现会很简单。理想情况下,任何连接的客户端都不应错过消息,这可用于其他类型的更新,例如服务器作业的进度更新等。

您可能需要查看一下


这里有一篇关于选择ClickOnce更新策略的文章:

如果客户端间歇性连接,但仍然需要接收更新消息,那么MSMQ就相当简单了

WCF和回调在这个senario中运行良好。请参阅对这一类似问题的回答:WCF在传输和连接配置(超时等)方面相当灵活。

问题似乎是关于更新数据,而不是客户端应用程序本身。我不确定是否遗漏了关键字(我不确定这是否可以视为编程问题)我建议你认真考虑WCF,因为学习曲线可能并不像你担心的那么糟糕。那里有很多教程,你可以很快地开始运行。IICDIAC!