【发布时间】:2011-12-21 03:31:41
【问题描述】:
当用户更新我们的 .net 应用程序中的某些数据时,我们的服务器会将更新发送给感兴趣的客户,告诉他们这些数据已经更新。目前,每个客户端也是一个服务器(即,它们侦听端口)服务器跟踪哪些客户端已登录并通过远程处理向它们发送更新消息。
这很有效,但存在潜在问题,因为必须将防火墙配置为允许访问客户端 PC。
我认为有几种方法可以解决这个问题,但每种方法都有其缺点。我目前正在研究 wcf 或 msmq 之类的排队系统,但是我对这些没有任何经验,而且学习曲线似乎很陡峭。我想到的其他选择是:
- 让客户端调用服务器方法,该方法在收到消息之前不会返回 - 超时、断开连接等潜在问题?
- 更改为 WCF 并使用回调 - 不确定这是否需要客户端作为端点?
- 使用计时器并每隔几秒检查一次消息 - 可能会淹没网络
还有其他方法可以实现吗?我认为这是一个可能已经解决的问题,因此希望实施将是简单的。理想情况下,任何连接的客户端都不应错过消息,这可用于其他类型的更新 - 例如。服务器作业的进度更新等。
【问题讨论】:
-
(我不确定这是否可以被视为编程问题。)我建议您认真考虑 WCF,因为学习曲线可能没有您担心的那么糟糕。那里有很多教程,您可以很快上手并运行。 IICDIAC!
标签: .net wcf communication remoting message-queue