WebSocketEndClientHandshake 函数 (websocket.h)

WebSocketEndClientHandshake 函数完成客户端握手。

语法

HRESULT WebSocketEndClientHandshake(
  [in]                WEB_SOCKET_HANDLE             hWebSocket,
  [in]                const PWEB_SOCKET_HTTP_HEADER pResponseHeaders,
  [in]                ULONG                         ulReponseHeaderCount,
  [in, out, optional] ULONG                         *pulSelectedExtensions,
  [in, out, optional] ULONG                         *pulSelectedExtensionCount,
  [in, out, optional] ULONG                         *pulSelectedSubprotocol
);

参数

[in] hWebSocket

类型: WEB_SOCKET_HANDLE

以前调用 WebSocketCreateClientHandle 返回的 WebSocket 会话句柄。

[in] pResponseHeaders

类型: const PWEB_SOCKET_HTTP_HEADER

指向包含应用程序接收的响应标头的 WEB_SOCKET_HTTP_HEADER 结构的数组的指针。

[in] ulReponseHeaderCount

类型: ULONG

pResponseHeaders 中的响应标头数。

[in, out, optional] pulSelectedExtensions

类型: ULONG*

输入时,指向应用程序分配的数组的指针。 成功输出时,指针指向表示服务器在客户端-服务器握手期间选择的扩展的数字数组。 这些数字是传递到 WebSocketBeginClientHandshakepszExtensions 的扩展数组中的从零开始的索引。

[in, out, optional] pulSelectedExtensionCount

类型: ULONG*

输入时, pulSelectedExtensions 中分配的扩展数。 这必须至少等于在 WebSocketEndClientHandshake 中传递给 ulExtensionCount 的数字。 成功输出时, pulSelectedExtensions 中返回的扩展数。

[in, out, optional] pulSelectedSubprotocol

类型: ULONG*

成功输出时,指向表示服务器在客户端-服务器握手期间选择的子协议的数字的指针。 此数字是传递到 WebSocketBeginClientHandshakepszSubprotocols 的子协议数组中的从零开始的索引。

返回值

类型: HRESULT

如果函数成功,则返回 S_OK

如果函数失败,它将返回以下代码之一或在 WinError.h 中定义的 系统错误代码

返回代码 说明
E_INVALID_PROTOCOL_FORMAT
协议数据的格式无效。
E_UNSUPPORTED_SUBPROTOCOL
服务器不接受应用程序指定的任何子协议。
E_UNSUPPORTED_EXTENSION
服务器不接受应用程序指定的扩展。

注解

在上一次调用 WebSocketBeginClientHandshake 后,必须调用此函数以完成客户端握手。 客户端-服务器握手完成后,应用程序可以使用会话函数。

要求

   
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
目标平台 Windows
标头 websocket.h
Library Websocket.lib
DLL Websocket.dll

另请参阅

WEB_SOCKET_HTTP_HEADER

WebSocketBeginClientHandshake

WebSocketBeginServerHandshake

WebSocketEndServerHandshake