WCF Duplex 是一个不错的选择吗?

Posted

技术标签:

【中文标题】WCF Duplex 是一个不错的选择吗?【英文标题】:Is WCF Duplex a good choice? 【发布时间】:2011-07-07 03:44:44 【问题描述】:

在使用 WCF 双工(聊天服务 | 短信服务)开发迷你项目后,我得到了一个可能不正确的点!

我认为 Duplex 理论很好而且有用,但是使用 Wcf Duplex 存在很多问题。 (如可靠会话、超时异常、服务器端的客户端地址管理、客户端的代理管理)

我想错了吗?我错过了什么吗?

有关更多信息,我使用的是 wsDualHttpBinding 而不是 tcpBinding。

【问题讨论】:

【参考方案1】:

如果您需要双向通信并且想要使用 WCF,双工通道是您的最佳选择。您只需要正确设计您的应用程序并正确处理您描述的所有问题。如果您觉得这些问题是开销并使事情变得更糟,您总是可以直接使用网络编程(套接字)或通过自己在服务器上公开单独的服务和在客户端上公开另一个服务来处理双向通信(客户端的第一次调用通知服务器有关客户端地址) - 这种情况会遇到与WsDualHttpBinding 相同的通信问题。

WsDualHttpBinding 本身就是一种特殊的双工通信。我个人不喜欢它,因为人们经常滥用它。问题是这个绑定使用了两个独立的连接——一个从客户端到服务器,第二个从服务器到客户端。这与仅使用从客户端到服务器发起的连接的 net.tcp 有很大不同。显然,在互联网上使用WsDualHttpBinding(=您无法控制客户端机器)变得更加复杂,因为每个客户端都必须配置其防火墙(在计算机、家庭互联网网关等)以允许在某些端口上进行连接。此外,如果您想在同一台客户端计算机上运行多个应用程序实例,则每个实例都必须使用自己的端口。

【讨论】:

谢谢...如果可能的话,请提供好建议post good sample about Wcf duplex 没有好样的,总是要看现在的需求。

以上是关于WCF Duplex 是一个不错的选择吗?的主要内容,如果未能解决你的问题,请参考以下文章

WCF Duplex中客户端突然崩溃怎么办

从不同线程调用时,WCF Duplex 回调方法永远不会执行

Duplex or request-reply with Apache ActiveMQ WCF Binding 配置问题

WCF(Silverlight)双工 - 不打服务器

核心数据会是一个不错的选择吗?

Fused Location Provider 是不错的选择吗?