MessageWebSocket Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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. |