StreamWebSocket 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
支援網路通訊,允許使用 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
- 繼承
- 屬性
- 實作
Windows 需求
裝置系列 |
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 命名空間具有方便的協助程式方法和列舉,可用來在使用 WebSocket 時處理錯誤。 這對於在您的應用程式中以不同的方式處理特定網路例外狀況時很有用。 應用程式也可以使用參數驗證錯誤例外狀況中的 HRESULT ,深入瞭解造成例外狀況之錯誤的詳細資訊。
如需可能例外狀況以及如何處理例外狀況的詳細資訊,請參閱 處理網路應用程式中的例外狀況。
在 Windows Server 2012 上使用 StreamWebSocket
在 Windows Server 2012 和 Windows Server 2012 R2 上,實作 Windows.Networking.Sockets 命名空間中大部分類別的 Windows.Networking.dll 將無法載入,除非已啟用 Media Foundation 功能。 因此,如果停用 Media Foundation 功能,使用 StreamWebSocket 和相關 WebSocket 類別的 Windows.Networking.Sockets 命名空間的應用程式將會失敗。 Windows Server 2012 或 Windows Server 2012 R2 安裝,並停用 Media Foundation 功能。
您可以使用 伺服器管理員 或在命令提示字元或文稿中輸入下列文字,在 Windows Server 2012 或 Windows Server 2012 R2 上啟用媒體基礎功能:
dism /online /enable-feature /featurename:ServerMediaFoundation
啟用 Media Foundation 功能之後,系統會提示使用者重新啟動。 重新啟動計算機之後, Windows.Networking.Sockets 命名空間中的套接字和 WebSocket 類別會如預期般運作。
版本歷程記錄
Windows 版本 | SDK 版本 | 新增值 |
---|---|---|
1607 | 14393 | ServerCustomValidationRequested |
建構函式
StreamWebSocket() |
建立新的 StreamWebSocket 物件。 |
屬性
Control |
取得 StreamWebSocket 物件上的套接字控件數據。 |
Information |
取得 StreamWebSocket 物件的套接字資訊。 |
InputStream |
取得要從 StreamWebSocket 物件上遠端目的地讀取的輸入數據流。 |
OutputStream |
取得輸出數據流,以寫入 StreamWebSocket 物件上的遠端網路目的地。 |
方法
Close() |
關閉 StreamWebSocket ,並將空的關閉框架傳送至伺服器。 |
Close(UInt16, String) |
關閉 StreamWebSocket ,並指出關閉的原因。 |
ConnectAsync(Uri) |
啟動異步操作,以連線到 StreamWebSocket 物件上的遠端網路目的地。 |
Dispose() |
執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。 |
SetRequestHeader(String, String) |
將 HTTP 要求標頭新增至 StreamWebSocket 物件在 WebSocket 通訊協定交握中使用的 HTTP 要求訊息。 |
事件
Closed |
在 StreamWebSocket 物件上收到關閉框架做為關閉交握的一部分時發生。 |
ServerCustomValidationRequested |
發生於已驗證安全伺服器 URI 的新 StreamWebSocket 連線 (wss: 通訊協定) 時。 如果您想要實作連線的自定義伺服器驗證,請處理此事件。 |