Open Interface Service WCF三种通信模式

WCF三种通信模式

一.请求响应模式:

概念:客户端发送请求,一直等待服务端响应,在此期间处于等待(假死)状态;直到服务器响应,才能继续执行其他的操作;

即使返回值是void 也属于请求与答复模式。

例:

[OperationContract]

string ShowName(string name);

二.单项模式:

概念:客户端发送请求,无论服务器端是否有响应,都会继续执行其他操作;

使用 IsOneWay=true 标记的操作不得声明输出参数、引用参数或返回值

例:

 [OperationContract(IsOneWay = true)]

 void ShowName(string name);

三.双工模式:

概念:双工模式建立在上面两种模式的基础之上,实现客户端与服务端相互的调用。相互调用:以往我们只是在客户端调用服务端,然后服务端有返回值返回客户端,而相互调用不光是客户端调用服务端,而且服务端也可以调用客户端的方法。

双工模式建立在以上两种模式之上,所以不冲突;

例:

[ServiceContract(CallbackContract = typeof(IUserCallback))]
    public interface IUser
    {
        [OperationContract]
        string ShowName(string name);
    }
   //回调的接口
    public interface IUserCallback
    {
        [OperationContract(IsOneWay = true)]
        void PrintSomething(string str);
    }

扩展知识:

回调绑定:

1.WSDualHttpBinding;

2.NetTcpBinding;

3.NetNamedPipeBinding;

4.NetPeerTcpBinding;

例:

<endpoint address=""  binding="wsDualHttpBinding" contract="WCFService_DualPlex.IUser"></endpoint>

原文地址:https://www.cnblogs.com/zlp520/p/7203795.html