Lingua

StreamWebSocket Classe

Definizione

Supporta la comunicazione di rete che consente la lettura e la scrittura di flussi usando un WebSocket.

public ref class StreamWebSocket 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 StreamWebSocket 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 StreamWebSocket 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 StreamWebSocket : 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 StreamWebSocket : System.IDisposable
function StreamWebSocket()
Public NotInheritable Class StreamWebSocket
Implements IDisposable
Ereditarietà
Object Platform::Object IInspectable StreamWebSocket
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 StreamWebSocket fornisce un'astrazione basata su flusso del protocollo WebSocket basato su messaggi. Ciò è utile per gli scenari in cui devono essere trasferiti file di grandi dimensioni (ad esempio foto o film). L'uso di StreamWebSocket consente di leggere sezioni di un messaggio con ogni operazione di lettura, anziché richiedere la lettura dell'intero messaggio in un'unica operazione (come con MessageWebSocket).

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

Gestione delle eccezioni

È necessario scrivere codice per gestire le eccezioni quando si chiamano metodi asincroni nella classe StreamWebSocket. 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 StreamWebSocket 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 StreamWebSocket e le classi WebSocket correlate nella 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

Costruttori

Nome Descrizione
StreamWebSocket()

Crea un nuovo oggetto StreamWebSocket .

Proprietà

Nome Descrizione
Control

Ottiene i dati del controllo socket in un oggetto StreamWebSocket .

Information

Ottiene informazioni sul socket su un oggetto StreamWebSocket .

InputStream

Ottiene il flusso di input da leggere dalla destinazione remota in un oggetto StreamWebSocket .

OutputStream

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

Metodi

Nome Descrizione
Close()

Chiude StreamWebSocket e invia un frame di chiusura vuoto al server.

Close(UInt16, String)

Chiude StreamWebSocket e indica un motivo per la chiusura.

ConnectAsync(Uri)

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

Dispose()

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

SetRequestHeader(String, String)

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

Eventi

Nome Descrizione
Closed

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

ServerCustomValidationRequested

Si verifica quando viene convalidata una nuova connessione StreamWebSocket 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