我有很多客户程序和一项服务。此客户端程序通过带有 WCF 的 http 通道与服务器通信。
客户端具有动态 IP。他们每天 24 小时在线。
我需要以下内容:服务器应每隔 3 分钟通知所有客户端。如果客户是新客户(即刻开始),应立即通知它。
但是由于客户端具有动态 IP,并且它们每天 24 小时工作,有时连接不稳定,使用 wcf 双工是个好主意吗?
当连接断开时会发生什么?会自动恢复吗?
将远程 MSMQ 用于此类通知是个好主意吗?
问候,
WCF 双工非常消耗资源,根据经验,您不应使用超过 10 个。双工通道涉及大量开销。也没有自动恢复。
如果您知道 3 分钟的间隔,并且您希望客户端在启动时获取信息,为什么不让客户端轮询来自服务器的信息?
当连接断开时,回调将抛出异常并且通道将关闭。
我不确定 MSMQ 是否适合您,除非每个客户端都会为您创建一个 MSMQ 队列并且您将消息推送到每个客户端。再次与不可靠的连接将无济于事。如果您失去与客户端的连接、客户端离线或更改 IP 而不通知您的系统,我认为您无法“推送”数据。