共用方式為


如何使用進階 WebSocket 控制項 (HTML)

[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]

這個主題說明在 Windows 執行階段應用程式使用 MessageWebSocketStreamWebSocket 功能時,如何使用進階通訊端控制項。

您必須知道的事

技術

先決條件

  • 這個主題的範例是使用 JavaScript 撰寫的。建議對 WebSocket 有基本的了解。

進階 WebSocket 控制項概觀

MessageWebSocketStreamWebSocket 類別都遵循使用進階控制項的相同模型。對應到上述每一個主要類別的是可以存取進階控制項的相關類別:

兩種類型的 WebSocket 使用的進階控制項基本模型都是相同的。 以下討論使用 StreamWebSocket 做為範例,但是相同程序也可搭配 MessageWebSocket 使用。

應用程式必須一律先在 StreamWebSocketControl 設定屬性,才能發出連線作業。因此,最好在建立通訊端後,立即設定任何進階選項。請勿在通訊端呼叫 ConnectAsync 方法之後嘗試設定 StreamWebSocketControl 屬性。

進階 StreamWebSocket 控制項

StreamWebSocket 有數個進階選項。

例如,讓我們詳細看看 StreamWebSocketControl.NoDelay 選項。建立 StreamWebSocket 時的預設設定是將這個選項設定為 true,以停用 Nagle 演算法。不過,如果將 StreamWebSocket 用於傳送許多小型封包的應用程式,而且沒有延遲的問題時,則可以將 StreamWebSocketControl.NoDelay 設定為 false 以啟用 Nagle 演算法,來減少網路流量。

下列範例會建立一個 StreamWebSocket,並將 StreamWebSocketControl.NoDelay 設定成 false。完成之後,應用程式就可以連線 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.

進階 MessageWebSocket 控制項

MessageWebSocket 有許多進階選項與 StreamWebSocket 相同,但還是有些許的差異。

MessageWebSocket 設定選項的方式與上面的範例大致相同。

備註

除了控制資料之外,一組類似的相關類別可提供存取這些主要類別的其他資訊:

這些類別具有提供通訊端其他資訊的屬性。

相關主題

其他

使用 WebSocket 進行連線

如何使用 MessageWebSocket 進行連線

如何使用 StreamWebSocket 進行連線

如何使用 TLS/SSL 保護 WebSocket 連線

參考

MessageWebSocket

StreamWebSocket

Windows.Networking.Sockets

範例

WebSocket 範例