StreamWebSocket Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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. |