Conectando-se com WebSockets (HTML)

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]

Envie e receba dados usando WebSockets para comunicação de rede bidirecional, em tempo real, segura e de baixa latência, usando os recursos no namespace Windows.Networking.Sockets.

O que são WebSockets?

O Protocolo WebSocket define um mecanismo para comunicações bidirecionais rápidas e seguras entre um cliente e um servidor na Web. Os dados são transferidos imediatamente através de uma única conexão de soquete full-duplex, permitindo que as mensagens sejam enviadas e recebidas de ambos os pontos de extremidade em tempo real. WebSockets são ideais para uso em aplicativos do Tempo de Execução do Windows que incluem jogos em tempo real, notificações instantâneas de rede social, exibições atualizadas de ações e informações meteorológicas, bem como em outros aplicativos que exigem transferências de dados rápidas e seguras. WebSockets também funcionam por meio de proxies e firewalls desde que o Protocolo WebSocket utilize por padrão as mesmas portas usadas pelos navegadores da Web (HTTP e HTTPS).

Para estabelecer uma conexão de WebSocket, um handshake baseado em HTTP é trocado entre o cliente e o servidor. Em caso de êxito, o protocolo de camada de aplicativo é "atualizado" de HTTP para WebSockets usando a conexão TCP estabelecida anteriormente. Assim que isso ocorre, o HTTP fica totalmente fora de cogitação. Os dados podem ser enviados ou recebidos usando o protocolo WebSocket por ambos os pontos de extremidade até o encerramento da conexão com WebSocket.

Importante  Um cliente não pode usar WebSockets para transferir dados, a menos que o servidor também use o protocolo WebSocket. Se o servidor não puder dar suporte a WebSockets, use outro método de transferência de dados.

 

O namespace Windows.Networking.Sockets oferece suporte para WebSockets de cliente no Tempo de Execução do Windows. Suporte para WebSockets de cliente e de servidos é oferecido no Windows 8.1 para aplicativos de área de trabalho.

O namespace Windows.Networking.Sockets define dois tipos de objetos WebSocket para serem usados por clientes em aplicativos do Tempo de Execução do Windows: MessageWebSocket e StreamWebSocket. A tabela a seguir descreve os dois tipos de WebSockets.

MessageWebSocket StreamWebSocket
Adequado para cenários típicos em que as mensagens não são extremamente grandes. Adequado para cenários em que há transferência de arquivos grandes (como fotos ou filmes).
Habilita a notificação de que uma mensagem WebSocket inteira foi recebida. Permite que seções de uma mensagem sejam lidas com cada operação de leitura.
Oferece suporte a mensagens UTF-8 e binárias. Oferece suporte apenas a mensagens binárias.
Até certo ponto, comparável a um soquete UDP (DatagramSocket). Até certo ponto, comparável a um soquete TCP (StreamSocket).

 

Usando WebSockets com isolamento de rede

O recurso de isolamento de rede no Tempo de Execução do Windows permite que o desenvolvedor controle e limite o acesso à rede por meio de um aplicativo do Tempo de Execução do Windows. Nem todos os aplicativos exigem acesso à rede. Porém, para os aplicativos que fazem isso, o Tempo de Execução do Windows oferece diferentes níveis de acesso à rede que podem ser ativados selecionando recursos adequados.

O isolamento de rede permite que um desenvolvedor defina o escopo necessário de acesso à rede para cada aplicativo. Um aplicativo sem o escopo apropriado definido não consegue acessar o tipo especificado de rede e o tipo específico de solicitação de rede (solicitações de saída iniciadas pelo cliente ou solicitações de entrada não solicitadas e de saída iniciadas pelo cliente). A capacidade de definir e impor o isolamento de rede garante que, se um aplicativo não ficar comprometido, ele só poderá acessar as redes às quais o aplicativo recebeu acesso explicitamente. Isto reduz significativamente o âmbito do impacto sobre outros aplicativos e sobre o Windows.

O isolamento de rede afeta todos os elementos de classe no namespace Windows.Networking.Sockets que tente acessar a rede. O Windows impõe ativamente o isolamento de rede. Uma chamada a um método na classe MessageWebSocket ou StreamWebSocket no namespace Windows.Networking.Socketsque resulte em acesso à rede poderá falhar por causa do isolamento de rede se o recurso de rede adequado não estiver habilitado.

Os recursos de rede para um aplicativo são configurados no manifesto do aplicativo quando o aplicativo é compilado. Geralmente, os recursos de rede são adicionados usando o Microsoft Visual Studio 2013 Update 2 ao desenvolver o aplicativo. Os recursos de rede também podem ser definidos manualmente no arquivo manifesto do aplicativo usando um editor de texto.

Para obter informações detalhadas sobre o isolamento de rede, veja Como configurar recursos de isolamento de rede.

Audiência de desenvolvedores

Os exemplos nos tópicos a seguir usam JavaScript e são baseados no exemplo de WebSocket. Para obter instruções sobre a criação de um aplicativo do Tempo de Execução do Windows em JavaScript, veja Mapa para aplicativos do Tempo de Execução do Windows em JavaScript.

Nesta seção

Tópico Descrição
Como conectar-se com um MessageWebSocket

Detalha os requisitos e as etapas específicas do uso de um MessageWebSocket para enviar e receber dados de um servidor Web.

Como conectar-se com um StreamWebSocket

Detalha os requisitos e as etapas específicas do uso de um StreamWebSocket para enviar e receber dados de um servidor Web.

Como usar os controles avançados de WebSocket

Explica como usar os controles avançados de soquete para definir as opções em um objeto WebSocket.

Como proteger as conexões WebSocket usando TLS/SSL

Explica como proteger as conexões WebSocket usando o protocolo Transport Layer Security (TLS)/Secure Sockets Layer (SSL).

 

Saiba mais sobre os recursos semelhantes e relacionados

Seção Descrição
Como configurar recursos de isolamento de rede

Explica o recurso de isolamento de rede e como configurar os recursos de isolamento de rede para controlar totalmente o acesso à rede para controlar totalmente o acesso à rede de um aplicativo da Windows Store.

Criando conexões de rede usando soquetes

Detalha os requisitos e as etapas específicas do uso de soquetes para enviar e receber dados de um recurso de rede.

Adicionando suporte à rede

Contém informações sobre como adicionar suporte de rede para seu aplicativo.

Solucione problemas e depure conexões de rede

Fornece sugestões de informações para ajudá-lo a solucionar problemas de conexão.

 

Tópicos relacionados

Outro

Mapa para aplicativos do Tempo de Execução do Windows em JavaScript

Referência

MessageWebSocket

StreamWebSocket

Windows.Networking.Sockets

Exemplos

Exemplo de WebSocket