Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Propósito
Importante
Escolhendo uma API WebSocket em Windows — há várias opções de WebSocket. Escolha com base no tipo de aplicativo:
| API | Mais adequado para | Observações |
|---|---|---|
| WinHTTP WebSocket (WinHttpWebSocketSend, etc.) | Serviços, código do lado do servidor, aplicativos C/C++ que precisam de WebSocket sobre WinHTTP | Integra-se ao proxy/autenticação do WinHTTP; requer Windows 8+. Recomendado para cenários de serviço do Win32. |
| Windows. Networking.Sockets (MessageWebSocket, StreamWebSocket) | Aplicativos UWP, aplicativos de área de trabalho C++/WinRT modernos | API de nível mais alto; manipula o enquadramento e o TLS. Os aplicativos devem implementar sua própria lógica de reconexão. Recomendado para novos aplicativos da área de trabalho/UWP. |
| Componente de protocolo WebSocket (esta API — websocket.dll) | Implementações de transporte personalizado que precisam apenas de enquadramento/análise de protocolo | Nível baixo: não manipula E/S, atualização HTTP, autenticação ou proxy. Você deve fornecer seu próprio transporte (normalmente bruto Winsock + TLS). |
| Sistema.Net. WebSockets (.NET) | Aplicativos .NET | Gerenciado, assíncrono, multiplataforma. Use ClientWebSocket para clientes. |
| Bibliotecas de terceiros (libwebsockets, Boost.Beast etc.) | C/C++ multiplataforma | Não Windows específico; útil ao direcionar várias plataformas. |
Para a maioria dos aplicativos, o WebSocket do WinHTTP (serviços/Win32) ou Windows. Networking.Sockets (aplicativos modernos) é a escolha correta. Use a API de componente de protocolo WebSocket de baixo nível somente se precisar de enquadramento personalizado em um transporte que você controla totalmente.
A API de Componente do Protocolo WebSocket permite canais de comunicação bidirecionais e assíncronos por HTTP que funcionam entre intermediários de rede existentes. Com a API de Componente do Protocolo WebSocket, um cliente usa HTTP para se comunicar com um servidor e, em seguida, ambos os lados alternam para usar o protocolo subjacente no qual HTTP estava em camadas (como TCP ou SSL). A meta é primeiro usar HTTP para percorrer intermediários de rede e, em seguida, usar o canal TCP/SSL subjacente de ponta a ponta estabelecido para comunicação bidirecional do aplicativo. O protocolo WebSocket [WSPROTO ] é definido no IETF, enquanto uma API Javascript associada (WebSockets) é definida no WHATWG.
Nesta seção
| Tópico | Descrição |
|---|---|
|
tipos de dados da API de componente do protocolo WebSocket |
A API do Componente de Protocolo WebSocket define esses tipos de dados. |
|
Enumerações da API de Componente do Protocolo WebSocket |
A API de Componente do Protocolo WebSocket define essas enumerações. |
|
funções de API de componente do protocolo WebSocket |
A API de Componente do Protocolo WebSocket define essas funções. |
| estruturas de API de componente do protocolo WebSocket |
A API de Componente do Protocolo WebSocket define essas estruturas. |
Público-alvo do desenvolvedor
A API de Componente do Protocolo WebSocket foi projetada para uso por meio de programadores C/C++. Familiaridade com a rede HTTP e Windows é necessária.
Nota
A maneira preferida de usar o protocolo WebSocket no Windows é por meio do da API dos Serviços HTTP do Windows (WinHTTP) ou do namespace Windows.Networking.Sockets.
Requisitos de tempo de execução
A API do Componente de Protocolo WebSocket requer o Windows 8 e versões posteriores do sistema operacional Windows. As APIs podem ser vinculadas dinamicamente por meio de websocket.dll.
Nota
websocket.dll fornece suporte para cabeçalhos HTTP relacionados ao handshake do cliente e do servidor, verifica os dados de handshake recebidos e analisa o fluxo de dados do WebSocket. Ele não lida com operações específicas de HTTP (redirecionamento, autenticação, suporte a proxy) nem executa operações de E/S (enviando ou recebendo bytes de fluxo do WebSocket).