我是一名WCF新手,我需要一些帮助才能开始一个项目:
我将拥有一个托管应用程序(服务器),需要通过互联网与多个客户端进行通信(消息系统),反之亦然。
实现这一目标的最佳方法是什么? 使用wsDualBinding?
更新
我决定使用NetTcpBinding模式。
答案 0 :(得分:3)
这取决于您的服务需要展示哪些功能,以及您需要支持哪种类型的客户端。任何基于HTTP的绑定都可以在互联网上运行,它只是数据编码方式的问题。
可以在此处找到内置绑定及其支持内容的摘要:http://msdn.microsoft.com/en-us/library/ms731092.aspx
但最常见的是:
由于您特别询问了双重绑定:
如果您正在编写一个需要能够从服务器回调到客户端的应用程序,那么双重绑定实际上是您唯一的选择。但是,由于您特别提到了聊天,我认为双通道服务不会很好用。
回调在WCF中的工作方式是您的客户端使用双通道调用服务,并且必须提供回调接口的实现。服务器可以使用它在服务方法调用期间调用客户端 ;回调上下文是按服务调用的,因此一旦该调用返回,它就不再有效。换句话说,您的服务器不能只是异步“调用”您的客户端,它必须等待客户端“轮询”服务器。如果你打算这样做,你就不再需要回调了。
老实说,我认为我不会将WCF用于交互式双向聊天应用程序,但我可以考虑两种可能的选择:
答案 1 :(得分:1)
WSDualHttpBinding
不是互联网的好选择。回调仅适用于没有防火墙和NAS限制的本地网络(内部网)。
有关详细信息,请参阅此帖:
Connecting over internet to WCF service using wsDualHttpBinding times out
如果要设置服务器到服务器的通信(应该适用于WPF),请使用WsHttpBinding
。
如果您打算使用Javascript中的数据,请使用WebHttpBinding
。