9

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

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

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

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

4

1 回答 1

14

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

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

于 2011-03-02T10:13:17.757 回答