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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构