Bagikan melalui


MessageWebSocket Kelas

Definisi

Mendukung komunikasi jaringan yang memungkinkan membaca dan menulis seluruh pesan menggunakan WebSocket.

public ref class MessageWebSocket 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 MessageWebSocket 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 MessageWebSocket 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 MessageWebSocket : 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 MessageWebSocket : System.IDisposable
function MessageWebSocket()
Public NotInheritable Class MessageWebSocket
Implements IDisposable
Warisan
Object Platform::Object IInspectable MessageWebSocket
Atribut
Penerapan

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)
Kemampuan aplikasi
internetClient privateNetworkClientServer

Keterangan

Kelas MessageWebSocket menyediakan abstraksi berbasis pesan dari protokol WebSocket. Saat menggunakan MessageWebSocket, seluruh pesan WebSocket dibaca atau ditulis dalam satu operasi. Sebaliknya, StreamWebSocket memungkinkan bagian pesan dibaca dengan setiap operasi baca, daripada mengharuskan seluruh pesan dibaca dalam satu operasi.

Untuk pesan UTF-8, MessageWebSocket harus digunakan. StreamWebSocket hanya mendukung pesan biner.

Menangani pengecualian

Anda harus menulis kode untuk menangani pengecualian saat memanggil metode asinkron pada kelas MessageWebSocket. Pengecualian dapat diakibatkan oleh kesalahan validasi parameter, kegagalan resolusi nama, dan kesalahan jaringan. Pengecualian dari kesalahan jaringan (hilangnya konektivitas, kegagalan koneksi, dan kegagalan server HTTP, misalnya) dapat terjadi kapan saja. Kesalahan ini mengakibatkan pengecualian dilemparkan. Jika tidak ditangani oleh aplikasi Anda, pengecualian dapat menyebabkan seluruh aplikasi Anda dihentikan oleh runtime.

Namespace layanan Windows.Networking.Sockets memiliki metode pembantu dan enumerasi yang nyaman untuk menangani kesalahan saat menggunakan WebSocket. Ini dapat berguna untuk menangani pengecualian jaringan tertentu secara berbeda di aplikasi Anda. Aplikasi juga dapat menggunakan HRESULT dari pengecualian tentang kesalahan validasi parameter untuk mempelajari informasi lebih rinci tentang kesalahan yang menyebabkan pengecualian.

Untuk informasi selengkapnya tentang kemungkinan pengecualian dan cara menangani pengecualian, lihat Menangani pengecualian di aplikasi jaringan.

Menggunakan MessageWebSocket di Windows Server 2012

Pada Windows Server 2012 dan Windows Server 2012 R2, Windows.Networking.dll yang mengimplementasikan sebagian besar kelas di namespace Windows.Networking.Sockets akan gagal dimuat kecuali fitur Media Foundation diaktifkan. Akibatnya, aplikasi yang menggunakan MessageWebSocket dan kelas WebSocket terkait di namespace Windows.Networking.Sockets akan gagal jika fitur Media Foundation dinonaktifkan. Penginstalan Windows Server 2012 atau Windows Server 2012 R2 dengan fitur Media Foundation dinonaktifkan.

Fitur Media Foundation dapat diaktifkan pada Windows Server 2012 atau Windows Server 2012 R2 menggunakan Manajer Server atau dengan memasukkan teks berikut dalam prompt perintah atau skrip:

dism /online /enable-feature /featurename:ServerMediaFoundation Setelah fitur Media Foundation diaktifkan, pengguna diminta untuk memulai ulang. Setelah komputer dimulai ulang, kelas untuk soket dan WebSocket di namespace Layanan Windows.Networking.Sockets akan berfungsi seperti yang diharapkan.

Riwayat versi

Versi Windows Versi SDK Nilai ditambahkan
1607 14393 ServerCustomValidationRequested
1803 17134 SendFinalFrameAsync
1803 17134 SendNonfinalFrameAsync

Konstruktor

MessageWebSocket()

Membuat objek MessageWebSocket baru.

Properti

Control

Mendapatkan data kontrol soket pada objek MessageWebSocket .

Information

Mendapatkan informasi soket pada objek MessageWebSocket .

OutputStream

Mendapatkan aliran output untuk menulis ke tujuan jaringan jarak jauh pada objek MessageWebSocket .

Metode

Close()

Menutup objek MessageWebSocket dan mengirim bingkai tutup kosong ke server.

Close(UInt16, String)

Menutup objek MessageWebSocket dan menunjukkan alasan penutupan.

ConnectAsync(Uri)

Memulai operasi asinkron untuk menyambungkan ke tujuan jaringan jarak jauh pada objek MessageWebSocket .

Dispose()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, merilis, atau mengatur ulang sumber daya yang tidak dikelola.

SendFinalFrameAsync(IBuffer)

Secara asinkron (dengan kemajuan) menulis bingkai data dalam aliran berurutan, dengan semantik bahwa ini adalah bingkai terakhir dalam pesan WebSocket (bit FIN pada bingkai ini diatur ke 1). Metode ini dan SendNonfinalFrameAsync memungkinkan Anda mengirim bingkai WebSocket individual.

SendNonfinalFrameAsync(IBuffer)

Secara asinkron (dengan kemajuan) menulis bingkai data dalam aliran berurutan, dengan semantik yang akan diikuti lebih banyak bingkai untuk pesan WebSocket yang sama (bit FIN pada bingkai ini diatur ke 0). Metode ini dan SendFinalFrameAsync memungkinkan Anda mengirim bingkai WebSocket individual.

SetRequestHeader(String, String)

Menambahkan header permintaan HTTP ke pesan permintaan HTTP yang digunakan dalam jabat tangan protokol WebSocket oleh objek MessageWebSocket .

Acara

Closed

Terjadi ketika bingkai dekat diterima pada objek MessageWebSocket sebagai bagian dari jabat tangan tertutup.

MessageReceived

Peristiwa yang menunjukkan bahwa pesan diterima pada objek MessageWebSocket .

ServerCustomValidationRequested

Terjadi ketika koneksi MessageWebSocket baru ke URI server aman (wss: protocol) sedang divalidasi. Tangani kejadian ini jika Anda ingin menerapkan validasi server kustom untuk koneksi.

Berlaku untuk

Lihat juga