频道 (Windows Web 服务)

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

在客户端上,使用 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 使用序列化在通道上发送消息以写入正文元素。
WsSendReplyMessage 发送答复收到的消息。
WsSetChannelProperty 设置通道的属性。
WsSetMessageProperty 设置消息的属性。
WsWriteMessageEnd 将消息的结束元素写入通道。
WsWriteMessageStart 将消息的标头写出到通道,并准备写入正文元素。

 

处理 描述
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 的架构。