Condividi tramite


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

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 è necessario trasferire 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 che l'intero messaggio venga letto in una singola operazione (come con MessageWebSocket).

StreamWebSocket supporta solo i 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 causano la generazione di eccezioni. Se non viene gestita dall'app, un'eccezione può causare la terminazione dell'intera app da parte del runtime.

Lo spazio dei nomi Windows.Networking.Sockets include un pratico metodo helper ed enumerazione per la gestione degli errori quando si usano WebSocket. Ciò può risultare utile per gestire specifiche eccezioni di rete 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, la Windows.Networking.dll che implementa la maggior parte delle classi nello spazio dei nomi Windows.Networking.Sockets non verrà caricata a meno che la funzionalità Media Foundation non sia abilitata. Di conseguenza, le app che usano StreamWebSocket e le classi WebSocket correlate nello spazio dei nomi Windows.Networking.Sockets avranno 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 nello spazio dei nomi Windows.Networking.Sockets funzioneranno come previsto.

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
1607 14393 ServerCustomValidationRequested

Costruttori

StreamWebSocket()

Crea un nuovo oggetto StreamWebSocket .

Proprietà

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

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, come rilasciare o reimpostare risorse non gestite.

SetRequestHeader(String, String)

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

Eventi

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: protocollo). Gestire questo evento se si vuole implementare la convalida del server personalizzata per la connessione.

Si applica a

Vedi anche