Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Zweck
Important
Auswählen einer WebSocket-API für Windows – Es gibt mehrere WebSocket-Optionen. Wählen Sie basierend auf Ihrem Anwendungstyp aus:
| API | Am besten geeignet für | Hinweise |
|---|---|---|
| WinHTTP WebSocket (WinHttpWebSocketSend usw.) | Dienste, serverseitiger Code, C/C++-Apps, die WebSocket über WinHTTP benötigen | Integriert in WinHTTP-Proxy/Authentifizierung; erfordert Windows 8+. Empfohlen für Win32-Dienstszenarien. |
| Windows. Networking.Sockets (MessageWebSocket, StreamWebSocket) | UWP-Apps, moderne C++/WinRT-Desktop-Apps | API auf höchster Ebene; behandelt Rahmen und TLS. Apps müssen ihre eigene Logik für die erneute Verbindung implementieren. Empfohlen für neue Desktop-/UWP-Apps. |
| WebSocket-Protokollkomponente (diese API – websocket.dll) | Benutzerdefinierte Transportimplementierungen, die nur Protokoll framing/parsing benötigen | Low-Level: behandelt keine E/A, HTTP-Upgrade, Authentifizierung oder Proxy. Sie müssen Ihren eigenen Transport (in der Regel unformatierte Winsock + TLS) bereitstellen. |
| System.Net. WebSockets (.NET) | .NET-Anwendungen | Verwaltet, async-first, plattformübergreifend. Wird für Clients verwendet ClientWebSocket . |
| Bibliotheken von Drittanbietern (libwebsockets, Boost.Beast usw.) | Plattformübergreifendes C/C++ | Nicht Windows-spezifisch; nützlich, wenn sie auf mehrere Plattformen ausgerichtet sind. |
Für die meisten Anwendungen winHTTP WebSocket (Services/Win32) oder Windows. Networking.Sockets (moderne Apps) ist die richtige Wahl. Verwenden Sie die WebSocket-Protokollkomponenten-API auf niedriger Ebene nur, wenn Sie eine benutzerdefinierte Rahmenerstellung für einen Transport benötigen, den Sie vollständig steuern.
Die WebSocket-Protokollkomponenten-API ermöglicht asynchrone, bidirektionale Kommunikationskanäle über HTTP, die über vorhandene Netzwerkintermediäre hinweg funktionieren. Bei der WebSocket-Protokollkomponenten-API verwendet ein Client HTTP für die Kommunikation mit einem Server, und beide Seiten wechseln dann zu dem zugrunde liegenden Protokoll, auf das HTTP überschichtet wurde (z. B. TCP oder SSL). Ziel ist es, zuerst HTTP zum Durchlaufen über Netzwerkintermediäre zu verwenden und dann den etablierten end-to-End-zugrunde liegenden TCP/SSL-Kanal für die bidirektionale Anwendungskommunikation zu verwenden. Das WebSocket-Protokoll [WSPROTO] wird an der IETF definiert, während eine zugeordnete Javascript-API (WebSockets) bei der WHATWG definiert wird.
In diesem Abschnitt
| Thema | Beschreibung |
|---|---|
|
WebSocket-Protokollkomponenten-API-Datentypen |
Die WebSocket-Protokollkomponenten-API definiert diese Datentypen. |
|
WebSocket-Protokollkomponenten-API-Enumerationen |
Die WebSocket-Protokollkomponenten-API definiert diese Enumerationen. |
|
WebSocket-Protokollkomponenten-API-Funktionen |
Die WebSocket-Protokollkomponenten-API definiert diese Funktionen. |
|
WebSocket-Protokollkomponenten-API-Strukturen |
Die WebSocket-Protokollkomponenten-API definiert diese Strukturen. |
Entwicklergruppe
Die WebSocket-Protokollkomponenten-API wurde für die Verwendung durch C/C++-Programmierer entwickelt. Kenntnisse über HTTP- und Windows-Netzwerke sind erforderlich.
Anmerkung
Die bevorzugte Methode zum Verwenden des WebSocket-Protokolls unter Windows ist die Windows HTTP Services (WinHTTP)-API oder der Windows.Networking.Sockets-Namespace.
Laufzeitanforderungen
Die WebSocket-Protokollkomponenten-API erfordert Windows 8 und höhere Versionen des Windows-Betriebssystems. Die APIs können dynamisch über websocket.dllverknüpft werden.
Anmerkung
websocket.dll bietet Unterstützung für Client- und Server handshake-bezogene HTTP-Header, überprüft empfangene Handshake-Daten und analysiert den WebSocket-Datenstrom. Sie verarbeitet keine HTTP-spezifischen Vorgänge (Umleitung, Authentifizierung, Proxyunterstützung) oder führt keine E/A-Vorgänge (Senden oder Empfangen von WebSocket-Streambytes) durch.