Channel (Windows Web Services)

通道封装两个或多个参与方之间的通信上下文,用于发送和接收消息。

在客户端上,使用 WsCreateChannel 创建通道。 在服务器上,使用 WsCreateChannelForListener 创建可由客户端使用 侦听器接受的通道。

创建通道时,请指定以下信息,这些信息可确定通道的本地行为和要使用的线路协议。

在使用通道之前,必须通过调用 WsOpenChannel 函数并指定通道和 终结点地址以及其他可选信息来打开它。

有关通道的状态转换的信息,请参阅 通道状态 主题。

有关通道的详细信息,请参阅 通道层概述 主题。

以下 API 元素与通道一起使用。

回调 说明
WS_ABANDON_MESSAGE_CALLBACK 处理具有自定义通道绑定的通道的 WsAbandonMessage 调用。
WS_ABORT_CHANNEL_CALLBACK 处理具有自定义通道绑定的通道 的 WsAbortChannel 调用。
WS_CLOSE_CHANNEL_CALLBACK 处理具有自定义通道绑定的通道 的 WsCloseChannel 调用。
WS_CREATE_CHANNEL_CALLBACK 处理具有自定义通道绑定的通道 的 WsCloseChannel 调用。
WS_CREATE_DECODER_CALLBACK 处理创建解码器实例。
WS_CREATE_ENCODER_CALLBACK 处理创建编码器实例。
WS_DECODER_DECODE_CALLBACK 解码消息。
WS_DECODER_END_CALLBACK 解码消息的结尾。
WS_DECODER_GET_CONTENT_TYPE_CALLBACK 获取消息的内容类型。
WS_DECODER_START_CALLBACK 开始解码消息。
WS_ENCODER_ENCODE_CALLBACK 对消息进行编码。
WS_ENCODER_END_CALLBACK 对消息的末尾进行编码。
WS_ENCODER_GET_CONTENT_TYPE_CALLBACK 获取消息的内容类型。
WS_ENCODER_START_CALLBACK 开始对消息进行编码。
WS_FREE_CHANNEL_CALLBACK 处理具有自定义通道绑定的通道 的 WsFreeChannel 调用。
WS_FREE_DECODER_CALLBACK 处理释放解码器实例。
WS_FREE_ENCODER_CALLBACK 处理释放编码器实例。
WS_GET_CHANNEL_PROPERTY_CALLBACK 处理具有自定义通道绑定的通道的 WsGetChannelProperty 调用。
WS_HTTP_REDIRECT_CALLBACK 当消息即将使用 HTTP 自动重定向功能自动重定向到另一个服务时调用,如 RFC2616 中所述。
WS_OPEN_CHANNEL_CALLBACK 处理具有自定义通道绑定的通道 的 WsOpenChannel 调用。
WS_READ_MESSAGE_END_CALLBACK 处理具有自定义通道绑定的通道的 WsReadMessageEnd 调用。
WS_READ_MESSAGE_START_CALLBACK 处理具有自定义通道绑定的通道的 WsReadMessageEnd 调用。
WS_RESET_CHANNEL_CALLBACK 处理具有自定义通道绑定的通道的 WsResetChannel 调用。
WS_SET_CHANNEL_PROPERTY_CALLBACK 处理具有自定义通道绑定的通道的 WsSetChannelProperty 调用。
WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK 处理具有自定义通道绑定的通道的 WsShutdownSessionChannel 调用。
WS_WRITE_MESSAGE_END_CALLBACK 处理具有自定义通道绑定的通道的 WsWriteMessageEnd 调用。
WS_WRITE_MESSAGE_START_CALLBACK 处理具有自定义通道绑定的通道的 WsWriteMessageStart 调用。

 

枚举 描述
WS_CHANNEL_BINDING 指示要用于通道的协议堆栈。
WS_CHANNEL_PROPERTY_ID 通过 ID 标识每个通道属性。
WS_CHANNEL_STATE 通道的状态。
WS_CHANNEL_TYPE 指示通道的基本特征,例如它是否为会话,以及支持的通信方向。
WS_ENCODING 不同的编码 (消息格式) 。
WS_RECEIVE_OPTION 指定从通道接收消息时是否需要消息。
WS_TRANSFER_MODE 指定是流式传输还是缓冲发送或接收的消息。

 

函数 说明
WsAbandonMessage 跳过通道消息的其余部分。
WsAbortChannel 中止指定通道上所有挂起的 I/O,并将通道状态设置为 WS_CHANNEL_STATE_FAULTED
WsCloseChannel 在不再需要通道时关闭通道。
WsCreateChannel 创建通道。
WsCreateChannelForListener 为侦听器创建通道。
WsFreeChannel 释放与通道关联的内存资源。
WsGetChannelProperty 检索通道参数引用的 Channel 的属性。
WsOpenChannel 打开指向终结点的通道。
WsReadMessageEnd 从通道读取消息的结束元素。
WsReadMessageStart 从通道读取下一条消息的标头,并准备读取正文元素。
WsReceiveMessage 接收消息并将消息正文反序列化为值。
WsRequestReply 发送请求消息并接收相关回复消息。
WsResetChannel 重置通道,以便可以重复使用。
WsSendMessage 使用序列化在通道上发送消息以写入 body 元素。
WsSendReplyMessage 发送一条消息,该消息是已接收消息的回复。
WsSetChannelProperty 设置通道的属性。
WsSetMessageProperty 设置消息的属性。
WsWriteMessageEnd 将消息的结束元素写入通道。
WsWriteMessageStart 将消息的标头写出到通道,并准备写入正文元素。

 

Handle 说明
WS_CHANNEL 用于引用通道的不透明类型。

 

结构 说明
WS_CHANNEL_DECODER 一组回调,用于转换已接收消息的内容类型和编码字节。
WS_CHANNEL_ENCODER 一组可转换已发送消息的内容类型和编码字节的回调。
WS_CHANNEL_PROPERTIES 一组 WS_CHANNEL_PROPERTY 结构。
WS_CHANNEL_PROPERTY 特定于通道的设置。
WS_CUSTOM_CHANNEL_CALLBACKS 构成自定义通道实现的一组回调。
WS_CUSTOM_HTTP_PROXY 用于使用 WS_CHANNEL_PROPERTY_ID 枚举的WS_CHANNEL_PROPERTY_CUSTOM_HTTP_PROXY 值指定通道的自定义代理。
WS_HTTP_HEADER_MAPPING 表示作为 WS_HTTP_MESSAGE_MAPPING的一部分映射的单个标头。
WS_HTTP_MESSAGE_MAPPING 有关如何在消息对象中表示 HTTP 请求或响应的信息。
WS_HTTP_REDIRECT_CALLBACK_CONTEXT 指定用于控制 HTTP 自动重定向行为的回调函数和状态。
WS_MESSAGE_DESCRIPTION 输入和输出的架构 WS_MESSAGE 给定操作说明。