自定义通道:Windows通信基础的深入探索
1. 入站通道的职责与工作流程
入站通道在Windows通信基础中扮演着重要角色,它主要有以下三项职责:
- 接收来自下级通道的消息。
- 将接收到的消息传递给上级。
- 对通过它的入站消息执行操作,以实现其所支持的协议。
通道调度器会要求通道监听器栈中的第一个监听器提供一个用于入站通信的通道。入站通道有标准的异步方法来等待传入消息,当消息到达时这些方法完成。通道调度器使用栈中第一个入站通道的方法等待传入消息,方法完成后就有入站消息需要处理。此时,通道调度器让第一个入站通道继续等待后续消息,同时将已接收的消息根据其地址确定目标端点,并传递给相应的端点调度器。端点调度器根据消息的操作头确定对应的操作,并将消息传递给适当的操作调度器。操作调度器将消息反序列化为数据项,然后传递给服务类型的实例进行处理。
当接收通信的服务所在应用程序不再需要通信时,Windows通信基础会指示通道调度器关闭,通道调度器再通知入站通道栈中的第一个通道关闭。该通道释放其资源,并通知栈中的下一个通道释放资源,以此类推。当第一个通道完成自身资源释放并检测到下级通道也已关闭时,会向通道调度器报告已关闭。其他状态转换指令也以同样方式传递。
2. 通道的形状
为了简化,之前的解释使用了入站通信通道和出站通信通道的概念。实际上,通道具有不同的形状,这由一系列从 System.ServiceModel.Channels.IChannel 接口派生的接口定义:
| 接口 | 通道形状描述 |
| — | — |
| System.S
超级会员免费看
订阅专栏 解锁全文
32

被折叠的 条评论
为什么被折叠?



