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

时间:2011-03-02 10:00:33

标签: wcf duplex

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

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

  我觉得错了吗?我想念一下吗?

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

1 个答案:

答案 0 :(得分:14)

如果您需要双向通信并且想要使用WCF,则可以使用双工通道。您只需正确设计应用程序并正确处理所描述的所有问题。如果您认为这些问题是开销并且使事情变得更糟,您可以直接使用网络编程(套接字)或处理双向通信,您可以在服务器上暴露单独的服务,在客户端上暴露另一个服务(首先从客户端通知服务器有关客户端地址的信息) - 此方案将遇到与WsDualHttpBinding相同的通信问题。

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