Condividi tramite


Come usare i controlli avanzati WebSocket (HTML)

[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]

Questo argomento illustra come usare i controlli avanzati dei socket con le funzionalità MessageWebSocket e StreamWebSocket in un'app di Windows Runtime.

Cosa sapere

Tecnologie

Prerequisiti

  • Gli esempi contenuti in questo argomento sono scritti in JavaScript. È consigliabile una conoscenza di base di WebSocket.

Panoramica sui controlli WebSocket avanzati

Le classi MessageWebSocket e StreamWebSocket seguono tutte lo stesso modello per l'uso dei controlli avanzati. Ad ognuna delle classi principali menzionate sopra corrispondono classi correlate per l'accesso ai controlli avanzati:

Il modello di base per l'uso di controlli avanzati è identico per entrambi i tipi di WebSocket. Nell'esempio seguente viene usata la classe StreamWebSocket, ma lo stesso processo può essere usato con la classe MessageWebSocket.

L'app deve sempre impostare la proprietà su StreamWebSocketControl prima di eseguire un'operazione di connessione. Per questo motivo, è preferibile impostare le opzioni avanzate immediatamente dopo la creazione del socket. Non provare a impostare una proprietà StreamWebSocketControl dopo che il socket ha chiamato il metodo ConnectAsync.

Controlli StreamWebSocket avanzati

Sono disponibili diverse opzioni avanzate per StreamWebSocket.

Per un esempio, esaminiamo in maggior dettaglio l'opzione StreamWebSocketControl.NoDelay. Per impostazione predefinita, quando viene creato un oggetto StreamWebSocket, questa opzione è impostata su true per disabilitare l'algoritmo di Nagle. Se tuttavia l'oggetto StreamWebSocket deve essere usato per un'app che invia numerosi piccoli pacchetti e la latenza non costituisce un problema, è possibile abilitare l'algoritmo di Nagle impostando l'oggetto StreamWebSocketControl.NoDelay su false per ridurre il traffico di rete.

L'esempio seguente crea un StreamWebSocket e imposta StreamWebSocketControl.NoDelay su false. Al termine, l'app può connettersi a StreamWebSocket

    var clientWebSocket = new Windows.Networking.Sockets.StreamWebSocket();

    // Get the current setting for this option
    // This isn't required, but it shows how to get the current setting
    var currentSetting = clientWebSocket.control.noDelay; 

    // Set noDelay to false so that the Nagle algorithm isn't disabled
    clientWebSocket.control.noDelay = false;
   
    // Now you can call the ConnectAsync method to connect the StreamWebSocket.

Controlli MessageWebSocket avanzati

Molte delle opzioni avanzate di MessageWebSocket sono identiche a quelle di StreamWebSocket, ma esistono alcune differenze.

L'impostazione delle opzioni su MessageWebSocket viene eseguita in modo quasi identico all'esempio precedente.

Osservazioni

Oltre ai dati di controllo, un set di classi correlate simili fornisce l'accesso ad altre informazioni in queste classi primarie:

Queste classi hanno proprietà che forniscono altre informazioni sul socket.

Argomenti correlati

Altro

Connessione con WebSocket

Come connettersi con un MessageWebSocket

Come connettersi con un StreamWebSocket

Come proteggere le connessioni WebSocket con TLS/SSL

Riferimento

MessageWebSocket

StreamWebSocket

Windows.Networking.Sockets

Esempi

Esempio WebSocket