WebSocket 协议组件 API

目的

Important

在 Windows 上选择 WebSocket API — 有多个 WebSocket 选项。 根据应用程序类型进行选择:

API 最适用于 备注
WinHTTP WebSocketWinHttpWebSocketSend 等) 需要通过 WinHTTP 使用 WebSocket 的服务、服务器端代码、C/C++ 应用 与 WinHTTP 代理/身份验证集成;需要Windows 8+ 。 建议用于 Win32 服务方案。
Windows。Networking.SocketsMessageWebSocketStreamWebSocket UWP 应用、新式 C++/WinRT 桌面应用 最高级别的 API;处理帧和 TLS。 应用必须实现自己的重新连接逻辑。 建议用于新的桌面/UWP 应用。
WebSocket 协议组件 (此 API - websocket.dll) 仅需要协议框架/分析的自定义传输实现 低级别: 处理 I/O、HTTP 升级、身份验证或代理。 必须提供自己的传输(通常是原始 Winsock + TLS)。
系统.Net。WebSocket (.NET) .NET 应用程序 托管的、异步优先的跨平台。 用于 ClientWebSocket 客户端。
第三方库 (libwebsocket、Boost.Beast 等) 跨平台 C/C++ 不是特定于Windows;在面向多个平台时很有用。

对于大多数应用程序,WinHTTP WebSocket(services/Win32)或Windows。Networking.Sockets (新式应用)是正确的选择。 仅当需要通过完全控制的传输进行自定义框架时,才使用低级别 WebSocket 协议组件 API。

WebSocket 协议组件 API 支持通过跨现有网络中介工作的 HTTP 的异步双向通信通道。 使用 WebSocket 协议组件 API,客户端使用 HTTP 与服务器通信,然后双方切换到使用分层 HTTP 的基础协议(如 TCP 或 SSL)。 目标是首先使用 HTTP 遍历网络中介,然后使用建立的端到端底层 TCP/SSL 通道进行双向应用程序通信。 WebSocket 协议 [WSPROTO] 在 IETF 中定义,而关联的 Javascript API(WebSocket)在 WHATWG 中定义。

在本部分中

主题 描述
WebSocket 协议组件 API 数据类型
WebSocket 协议组件 API 定义这些数据类型。
WebSocket 协议组件 API 枚举
WebSocket 协议组件 API 定义这些枚举。
WebSocket 协议组件 API 函数
WebSocket 协议组件 API 定义这些函数。
WebSocket 协议组件 API 结构
WebSocket 协议组件 API 定义这些结构。

开发人员受众

WebSocket 协议组件 API 旨在供 C/C++ 程序员使用。 需要熟悉 HTTP 和 Windows 网络。

注意

在 Windows 上使用 WebSocket 协议的首选方法是通过 Windows HTTP Services (WinHTTP) APIWindows.Networking.Sockets 命名空间

运行时要求

WebSocket 协议组件 API 需要 Windows 8 及更高版本的 Windows作系统。 可以通过 websocket.dll动态链接 API。

注意

websocket.dll 支持客户端和服务器握手相关的 HTTP 标头、验证收到的握手数据并分析 WebSocket 数据流。 它不会处理任何特定于 HTTP 的作(重定向、身份验证、代理支持),也不会执行任何 I/O作(发送和接收 WebSocket 流字节)。

HTTP

Windows HTTP 服务 (WinHTTP)