gpt4 book ai didi

需要将消息推送到客户端的 WCF 服务

转载 作者:行者123 更新时间:2023-12-01 05:33:17 26 4
gpt4 key购买 nike

这是我需要的设计:My design idea .

enter image description here

对于服务的“橙色”部分,“订阅者”设计是一个好主意吗?

客户端需要连接到服务以执行“读取”和“写入”操作,并且他们还需要从服务获取通知(以 PUSH 方式)。

一开始我认为提供“读取”和“写入”功能的服务也可以发送通知(通过后台线程),但后来我明白“回调”仅在服务需要调用时使用在客户端上作为对客户端请求的响应。含义-服务无法向客户端发起调用 .那么“订阅者”设计是解决这个问题的正确方法吗?

最佳答案

所以简短的回答是肯定的——使用发布/订阅模式是众所周知的模型。它有助于将消费者与发布者分离。魔鬼在实现细节以及您可以处理多少复杂性以及您愿意在设计中交易什么。

您可以从 WCF duplex channel 开始如果您愿意接受它的权衡(必须是 WCF 客户端,您拥有客户端和服务)和限制(客户端直接耦合,网络拓扑限制),则实现。

如果您不喜欢双工 channel 的限制,那么您可以考虑使用 MSMQ 或 NServiceBus 之类的东西。以促进发布/订阅要求。您可以使用 Windows Azure AppFabric Service Bus 将其提升到新的水平.

Duplex 可以独立地向客户端发送消息,而不仅仅是在来自客户端的调用到达时。

双工不耐用——当客户端离开或出现任何通信问题时,您必须从 channel 故障中恢复。保护双工可能很棘手。您必须在双方都有 WCF 客户端/服务。您必须了解您的网络拓扑。

您有 2 个不同的绑定(bind)上下文(系统)。一种是让客户端发送命令和查询,另一种是向想要收听这些事件的人发布有趣的事件。

编辑 - 如果某些客户端是 iOS 设备怎么办?使用 DUPLEX 会造成问题吗?你能开发一个通过 DUPLEX channel 与 WCF 服务通信的 iOS 应用程序吗?

答:请参阅此 SO WCF duplex connection on iPhone?What should I know when developing interoperable WCF web service?

关于需要将消息推送到客户端的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10249172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com