Lingua

MessageWebSocket Classe

Definizione

Supporta la comunicazione di rete che consente la lettura e la scrittura di interi messaggi usando un 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
Ereditarietà
Object Platform::Object IInspectable MessageWebSocket
Attributi
Implementazioni

Requisiti Windows

Requisiti Descrizione
Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)
Funzionalità dell'app
internetClient privateNetworkClientServer

Commenti

La classe MessageWebSocket fornisce un'astrazione basata su messaggi del protocollo WebSocket. Quando si usa MessageWebSocket, l'intero messaggio WebSocket viene letto o scritto in una singola operazione. Al contrario, StreamWebSocket consente di leggere sezioni di un messaggio con ogni operazione di lettura, anziché richiedere la lettura dell'intero messaggio in un'unica operazione.

Per i messaggi UTF-8, è necessario usare MessageWebSocket. StreamWebSocket supporta solo messaggi binari.

Gestione delle eccezioni

È necessario scrivere codice per gestire le eccezioni quando si chiamano metodi asincroni nella classe MessageWebSocket. Le eccezioni possono derivare da errori di convalida dei parametri, errori di risoluzione dei nomi ed errori di rete. Le eccezioni da errori di rete (perdita di connettività, errori di connessione e errori del server HTTP, ad esempio) possono verificarsi in qualsiasi momento. Questi errori generano eccezioni. Se non gestita dall'app, un'eccezione può causare la terminazione dell'intera app da parte del runtime.

Windows. Lo spazio dei nomi Networking.Sockets include un pratico metodo helper ed enumerazione per la gestione degli errori quando si usano WebSocket. Questo può essere utile per gestire eccezioni di rete specifiche in modo diverso nell'app. Un'app può anche usare HRESULT dall'eccezione sugli errori di convalida dei parametri per ottenere informazioni più dettagliate sull'errore che ha causato l'eccezione.

Per altre informazioni sulle possibili eccezioni e su come gestire le eccezioni, vedere Gestione delle eccezioni nelle app di rete.

Uso di MessageWebSocket in Windows Server 2012

In Windows Server 2012 e Windows Server 2012 R2, il Windows.Networking.dll che implementa la maggior parte delle classi nella Windows. Lo spazio dei nomi Networking.Sockets non verrà caricato a meno che non sia abilitata la funzionalità Media Foundation. Di conseguenza, le app che usano MessageWebSocket e le classi WebSocket correlate nel Windows. Lo spazio dei nomi Networking.Sockets avrà esito negativo se la funzionalità Media Foundation è disabilitata. Windows Server 2012 o Windows Server 2012 R2 viene installato con la funzionalità Media Foundation disabilitata.

La funzionalità Media Foundation può essere abilitata in Windows Server 2012 o Windows Server 2012 R2 usando Server Manager o immettendo il testo seguente in un prompt dei comandi o in uno script:

dism /online /enable-feature /featurename:ServerMediaFoundation Dopo aver abilitato la funzionalità Media Foundation, all'utente viene richiesto di riavviare. Dopo il riavvio del computer, le classi per socket e WebSocket nel Windows. Lo spazio dei nomi Networking.Sockets funzionerà come previsto.

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
1607 14393 ServerCustomValidationRequested
1803 17134 SendFinalFrameAsync
1803 17134 SendNonfinalFrameAsync

Costruttori

Nome Descrizione
MessageWebSocket()

Crea un nuovo oggetto MessageWebSocket .

Proprietà

Nome Descrizione
Control

Ottiene i dati del controllo socket in un oggetto MessageWebSocket .

Information

Ottiene informazioni sul socket su un oggetto MessageWebSocket .

OutputStream

Ottiene il flusso di output da scrivere nella destinazione di rete remota in un oggetto MessageWebSocket .

Metodi

Nome Descrizione
Close()

Chiude l'oggetto MessageWebSocket e invia un frame di chiusura vuoto al server.

Close(UInt16, String)

Chiude l'oggetto MessageWebSocket e indica un motivo per la chiusura.

ConnectAsync(Uri)

Avvia un'operazione asincrona per connettersi a una destinazione di rete remota in un oggetto MessageWebSocket .

Dispose()

Esegue attività definite dall'applicazione associate alla liberazione, al rilascio o alla reimpostazione di risorse non gestite.

SendFinalFrameAsync(IBuffer)

In modo asincrono (con stato) scrive un frame di dati in un flusso sequenziale, con la semantica che si tratta dell'ultimo fotogramma in un messaggio WebSocket (il bit FIN in questo frame è impostato su 1). Questo metodo e SendNonfinalFrameAsync consentono di inviare singoli frame WebSocket.

SendNonfinalFrameAsync(IBuffer)

In modo asincrono (con stato) scrive un frame di dati in un flusso sequenziale, con la semantica che più fotogrammi seguiranno per lo stesso messaggio WebSocket (il bit FIN in questo frame è impostato su 0). Questo metodo e SendFinalFrameAsync consentono di inviare singoli frame WebSocket.

SetRequestHeader(String, String)

Aggiunge un'intestazione di richiesta HTTP al messaggio di richiesta HTTP usato nell'handshake del protocollo WebSocket dall'oggetto MessageWebSocket .

Eventi

Nome Descrizione
Closed

Si verifica quando viene ricevuto un frame di chiusura nell'oggetto MessageWebSocket come parte dell'handshake di chiusura.

MessageReceived

Evento che indica che è stato ricevuto un messaggio nell'oggetto MessageWebSocket .

ServerCustomValidationRequested

Si verifica quando viene convalidata una nuova connessione MessageWebSocket a un URI del server protetto (wss: protocol). Gestire questo evento se si vuole implementare la convalida del server personalizzata per la connessione.

Si applica a

Vedi anche