語言

StreamWebSocket 類別

定義

支援網路通訊,允許使用 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
繼承
Object Platform::Object IInspectable StreamWebSocket
屬性
實作

Windows 需求

規格需求 Description
裝置系列
Windows 10 (已於 10.0.10240.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)
應用程式功能
internetClient privateNetworkClientServer

備註

StreamWebSocket 類別提供了基於串流的訊息式 WebSocket 協定抽象化。 這對於需要傳輸大型檔案(如照片或影片)的情況非常有用。 使用 StreamWebSocket 允許每次讀取操作讀取訊息的各個區段,而不必像 MessageWebSocket 那樣一次性讀取整則訊息。

StreamWebSocket 僅支援二進位訊息。 對於 UTF-8 訊息,必須使用 MessageWebSocket 。

處理例外狀況

你必須寫程式碼來處理 StreamWebSocket 類別上的非同步方法異常。 例外可能因參數驗證錯誤、名稱解析失敗及網路錯誤而產生。 網路錯誤的例外(例如連線中斷、連線失敗及 HTTP 伺服器故障)可能隨時發生。 這些錯誤會導致拋出例外。 如果應用程式無法處理,例外可能會導致整個應用程式在執行時被終止。

Windows。Networking.Sockets 命名空間提供方便的輔助方法與列舉方式,用於處理使用 WebSockets 時的錯誤。 這對於在應用程式中處理特定網路例外的方式很有幫助。 應用程式也可以利用例外中對參數驗證錯誤的 HRESULT 來學習導致異常的更詳細資訊。

欲了解更多可能例外及如何處理例外的資訊,請參閱 「網路應用程式中的例外處理」。

在 Windows Server 2012 上使用 StreamWebSocket

在 Windows Server 2012 和 Windows Server 2012 R2,這是實作大部分 Windows 類別的 Windows.Networking.dll。Networking.Sockets 命名空間若未啟用 Media Foundation 功能,將無法載入。 因此,Windows 中使用 StreamWebSocket 及相關 WebSocket 類別的應用程式,如果關閉 Media Foundation 功能,Networking.Sockets 命名空間將會失敗。 Windows Server 2012 或 Windows Server 2012 R2 安裝時,關閉了媒體基礎功能。

媒體基礎功能可在 Windows Server 2012 或 Windows Server 2012 R2 上啟用,使用 伺服器管理員,或透過命令提示字元或腳本輸入以下文字:

dism /online /enable-feature /featurename:ServerMediaFoundation 啟用 Media Foundation 功能後,使用者會被提示重新啟動。 電腦重新啟動後,Windows 中會建立 sockets 和 WebSockets 的類別。Networking.sockets 命名空間會如預期運作。

版本歷程記錄

Windows版本 SDK 版本 附加價值
1607 14393 ServerCustomValidationRequested

建構函式

名稱 Description
StreamWebSocket()

建立一個新的 StreamWebSocket 物件。

屬性

名稱 Description
Control

取得 StreamWebSocket 物件上的 socket 控制資料。

Information

取得 StreamWebSocket 物件的 socket 資訊。

InputStream

取得輸入串流,從 StreamWebSocket 物件的遠端目的地讀取。

OutputStream

取得輸出串流,寫入遠端網路目的地的 StreamWebSocket 物件。

方法

名稱 Description
Close()

關閉 StreamWebSocket ,並傳送一個空的關閉框架給伺服器。

Close(UInt16, String)

關閉 StreamWebSocket ,並指示關閉原因。

ConnectAsync(Uri)

啟動一個非同步操作,連接 StreamWebSocket 物件上的遠端網路目的地。

Dispose()

執行與釋放、釋放或重設非受控資源相關聯的應用程式定義工作。

SetRequestHeader(String, String)

在 StreamWebSocket 物件所用的 WebSocket 協定握手中使用的 HTTP 請求訊息中,新增 HTTP 請求標頭。

事件

名稱 Description
Closed

當 StreamWebSocket 物件接收到接近的框架時,會發生在接近握手中。

ServerCustomValidationRequested

當正在驗證與安全伺服器 URI(wss:協定)的新 StreamWebSocket 連線時,會發生這種情況。 如果你想為連線實作自訂伺服器驗證,就處理這個事件。

適用於

另請參閱