MessageWebSocket Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Dá suporte à comunicação de rede que permite ler e gravar mensagens inteiras usando um WebSocket.
public ref class MessageWebSocket sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class MessageWebSocket final : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class MessageWebSocket final : IClosable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class MessageWebSocket : System.IDisposable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class MessageWebSocket : System.IDisposable
function MessageWebSocket()
Public NotInheritable Class MessageWebSocket
Implements IDisposable
- Herança
- Atributos
- Implementações
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Funcionalidades do aplicativo |
internetClient
privateNetworkClientServer
|
Comentários
A classe MessageWebSocket fornece uma abstração baseada em mensagem do protocolo WebSocket. Ao usar MessageWebSocket, toda a mensagem WebSocket é lida ou gravada em uma única operação. Por outro lado, o StreamWebSocket permite que seções de uma mensagem sejam lidas com cada operação de leitura, em vez de exigir que toda a mensagem seja lida em uma única operação.
Para mensagens UTF-8, MessageWebSocket deve ser usado. StreamWebSocket só dá suporte a mensagens binárias.
Tratamento de exceções
Você deve escrever código para lidar com exceções ao chamar métodos assíncronos na classe MessageWebSocket. Exceções podem resultar de erros de validação de parâmetro, falhas de resolução de nomes e erros de rede. Exceções de erros de rede (perda de conectividade, falhas de conexão e falhas de servidor HTTP, por exemplo) podem ocorrer a qualquer momento. Esses erros geram exceções. Se não for tratada pelo aplicativo, uma exceção poderá fazer com que todo o aplicativo seja encerrado pelo runtime.
O namespace Windows.Networking.Sockets tem um método auxiliar conveniente e enumeração para lidar com erros ao usar WebSockets. Eles são úteis para resolver exceções de rede específicas de uma outra forma em seu aplicativo. Um aplicativo também pode usar o HRESULT da exceção em erros de validação de parâmetro para saber mais informações sobre o erro que causou a exceção.
Para obter mais informações sobre possíveis exceções e como lidar com exceções, consulte Tratamento de exceções em aplicativos de rede.
Usando MessageWebSocket no Windows Server 2012
No Windows Server 2012 e no Windows Server 2012 R2, o Windows.Networking.dll que implementa a maioria das classes no namespace Windows.Networking.Sockets falhará ao carregar, a menos que o recurso do Media Foundation esteja habilitado. Como resultado, os aplicativos que usam MessageWebSocket e classes WebSocket relacionadas no namespace Windows.Networking.Sockets falharão se o recurso do Media Foundation estiver desabilitado. O Windows Server 2012 ou Windows Server 2012 R2 é instalado com o recurso do Media Foundation desabilitado.
O recurso do Media Foundation pode ser habilitado no Windows Server 2012 ou no Windows Server 2012 R2 usando Gerenciador do Servidor ou inserindo o seguinte texto em um prompt de comando ou em um script:
dism /online /enable-feature /featurename:ServerMediaFoundation
Depois que o recurso do Media Foundation estiver habilitado, o usuário será solicitado a reiniciar. Depois que o computador for reiniciado, as classes para soquetes e WebSockets no namespace Windows.Networking.Sockets funcionarão conforme o esperado.
Histórico de versão
Versão do Windows | Versão do SDK | Valor adicionado |
---|---|---|
1607 | 14393 | ServerCustomValidationRequested |
1803 | 17134 | SendFinalFrameAsync |
1803 | 17134 | SendNonfinalFrameAsync |
Construtores
MessageWebSocket() |
Cria um novo objeto MessageWebSocket . |
Propriedades
Control |
Obtém dados de controle de soquete em um objeto MessageWebSocket . |
Information |
Obtém informações de soquete em um objeto MessageWebSocket . |
OutputStream |
Obtém o fluxo de saída a ser gravado no destino de rede remota em um objeto MessageWebSocket . |
Métodos
Close() |
Fecha o objeto MessageWebSocket e envia um quadro de fechamento vazio para o servidor. |
Close(UInt16, String) |
Fecha o objeto MessageWebSocket e indica um motivo para o fechamento. |
ConnectAsync(Uri) |
Inicia uma operação assíncrona para se conectar a um destino de rede remota em um objeto MessageWebSocket . |
Dispose() |
Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados. |
SendFinalFrameAsync(IBuffer) |
De forma assíncrona (com progresso) grava um quadro de dados em um fluxo sequencial, com a semântica de que este é o último quadro em uma mensagem WebSocket (o bit FIN nesse quadro é definido como 1). Esse método e SendNonfinalFrameAsync permitem que você envie quadros WebSocket individuais. |
SendNonfinalFrameAsync(IBuffer) |
De forma assíncrona (com progresso) grava um quadro de dados em um fluxo sequencial, com a semântica que mais quadros seguirão para a mesma mensagem WebSocket (o bit FIN nesse quadro é definido como 0). Esse método e SendFinalFrameAsync permitem que você envie quadros WebSocket individuais. |
SetRequestHeader(String, String) |
Adiciona um cabeçalho de solicitação HTTP à mensagem de solicitação HTTP usada no handshake do protocolo WebSocket pelo objeto MessageWebSocket . |
Eventos
Closed |
Ocorre quando um quadro próximo é recebido no objeto MessageWebSocket como parte do handshake de fechamento. |
MessageReceived |
Um evento que indica que uma mensagem foi recebida no objeto MessageWebSocket . |
ServerCustomValidationRequested |
Ocorre quando uma nova conexão MessageWebSocket com um URI de servidor seguro (protocolo wss: ) está sendo validada. Manipule esse evento se quiser implementar a validação do servidor personalizado para a conexão. |