WebSocket <WebSocket>
Gambaran Umum
Elemen <webSocket>
menentukan penggunaan modul WebSocketModule dengan ASP.NET 4.5 untuk mendukung penulisan aplikasi server yang berkomunikasi melalui Protokol WebSocket. WebSocket memungkinkan Anda menyediakan komunikasi dupleks penuh melalui satu koneksi TCP dengan menggunakan aliran pesan daripada aliran byte. Ini memudahkan untuk terhubung ke sumber data secara asinkron dalam penyebaran cloud.
Kompatibilitas
Versi | Catatan |
---|---|
IIS 10.0 | Elemen <webSocket> tidak dimodifikasi dalam IIS 10.0. |
IIS 8.5 | Elemen <webSocket> tidak dimodifikasi dalam IIS 8.5. |
IIS 8.0 | Elemen ini <webSocket> diperkenalkan di IIS 8.0. |
IIS 7.5 | T/A |
IIS 7.0 | T/A |
IIS 6.0 | T/A |
Siapkan
Windows Server 2012 atau Windows Server 2012 R2
- Pada taskbar, klik Manajer Server.
- Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.
- Di wizard Tambahkan Peran dan Fitur , klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.
- Pada halaman Peran Server , perluas Server Web (IIS), perluas Server Web, perluas Pengembangan Aplikasi, lalu pilih Protokol WebSocket. Klik Berikutnya.
. - Pada halaman Pilih Fitur , klik Berikutnya.
- Pada halaman Konfirmasi pilihan instalasi, klik Instal.
- Pada halaman Hasil , klik Tutup.
Windows 8 atau Windows 8.1
- Pada layar Mulai, pindahkan penunjuk ke sudut kiri bawah, klik kanan tombol Mulai, lalu klik Panel Kontrol. - Dalam Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan fitur Windows.
- Perluas Layanan Informasi Internet, perluas World Wide Web Services, perluas Fitur Pengembangan Aplikasi, lalu pilih Protokol WebSocket.
- Klik OK.
- Klik Tutup.
Bagaimana Caranya
Cara Menggunakan API IWebSocketContext
Pengembang dapat menggunakan IWebSocketContext API untuk membuat aplikasi yang menerapkan komunikasi dua arah dan sepenuhnya dupleks antara klien dan server, mengirim aliran pesan alih-alih byte. API IWebSocketContext memaparkan API yang diperlukan untuk membaca/menulis data WebSocket.
Jika permintaan masuk akan diterima sebagai permintaan WebSocket dan kemudian ditingkatkan, handler harus menetapkan status respons sebagai 101. Ini harus memulai IHttpResponse-Flush>, yang akan memicu modul IIS WebSocket untuk melakukan pekerjaan yang diperlukan untuk mengirim respons 101 ke klien.
Setelah respons dikirim, handler bisa mendapatkan penunjuk ke IWebSocketContext melalui API GetNamedContext IHttpContext3.
Untuk informasi selengkapnya, lihat Antarmuka IWebSocketContext.
Cara mengonfigurasi webSocket
Buka Pengelola Layanan Informasi Internet (IIS):
Jika Anda menggunakan Windows Server 2012 atau yang lebih baru:
- Pada bilah tugas, klik Manajer Server, klik Alat, lalu klik Pengelola Layanan Informasi Internet (IIS).
Jika Anda menggunakan Windows 8 atau yang lebih baru:
- Tahan tombol Windows, tekan huruf X, lalu klik Panel Kontrol.
- Klik Alat Administratif, lalu klik dua kali Manajer Layanan Informasi Internet (IIS).
Di panel Koneksi , pilih nama server untuk mengonfigurasi WebSocket untuk server, atau perluas Situs lalu pilih situs untuk mengonfigurasi WebSocket untuk situs tersebut, atau perluas situs lalu pilih aplikasi untuk mengonfigurasi WebSocket untuk aplikasi tersebut.
Di panel Beranda , klik dua kali fitur Editor Konfigurasi .
Untuk situs atau aplikasi, pilih web.config atau applicationHost.config di kotak teks Dari .
Pilih system.webServer/webSocket di kotak teks Bagian .
Atur
enabled
ke True untuk mengaktifkan webSocket atau False untuk menonaktifkan webSocket. Atur pingInterval dan receiveBufferLimit ke nilai yang diinginkan.Klik Terapkan di panel Tindakan .
Konfigurasi
Elemen dikonfigurasi <webSocket>
di tingkat server, situs, atau aplikasi.
Atribut
Atribut | Deskripsi |
---|---|
enabled |
Atribut Boolean opsional. Memungkinkan aplikasi server berkomunikasi melalui protokol WebSocket. Nilai defaultnya adalah true . |
pingInterval |
Atribut timeSpan opsional. Interval di mana ping dikirim melalui koneksi WebSocket. Nilai defaultnya adalah 00:00:00 . |
receiveBufferLimit |
Atribut uint opsional. Ukuran maksimum buffer penerima untuk koneksi WebSocket. Nilai defaultnya adalah 4194304 . |
Elemen Anak
Tidak ada.
Sampel Konfigurasi
Sampel berikut menampilkan <elemen webSocket> .
<system.webServer>
<webSocket
enabled="true"
receiveBufferLimit="4194304"
pingInterval="00:01:00">
</webSocket>
</system.webServer>
Kode Sampel
Kode sampel berikut mengonfigurasi <webSocket> untuk situs.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/webSocket /enabled:"True" /receiveBufferLimit:"4194304" /pingInterval:"00:00:10" /commit:apphost
Catatan
Anda harus memastikan untuk mengatur parameter penerapan ke apphost
saat menggunakan AppCmd.exe untuk mengonfigurasi pengaturan ini. Ini menerapkan pengaturan konfigurasi ke bagian lokasi yang sesuai dalam file ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection webSocketSection = config.GetSection("system.webServer/webSocket", "Default Web Site");
webSocketSection["enabled"] = true;
webSocketSection["receiveBufferLimit"] = 4194304;
webSocketSection["pingInterval"] = TimeSpan.Parse("00:00:10");
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim webSocketSection As ConfigurationSection = config.GetSection("system.webServer/webSocket", "Default Web Site")
webSocketSection("enabled") = true
webSocketSection("receiveBufferLimit") = 4194304
webSocketSection("pingInterval") = TimeSpan.Parse("00:00:10")
serverManager.CommitChanges
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var webSocketSection = adminManager.GetAdminSection("system.webServer/webSocket", "MACHINE/WEBROOT/APPHOST/Default Web Site");
webSocketSection.Properties.Item("enabled").Value = true;
webSocketSection.Properties.Item("receiveBufferLimit").Value = 4194304;
webSocketSection.Properties.Item("pingInterval").Value = "00:00:10";
adminManager.CommitChanges();
Vbscript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set webSocketSection = adminManager.GetAdminSection("system.webServer/webSocket", "MACHINE/WEBROOT/APPHOST/Default Web Site")
webSocketSection.Properties.Item("enabled").Value = true
webSocketSection.Properties.Item("receiveBufferLimit").Value = 4194303
webSocketSection.Properties.Item("pingInterval").Value = "00:00:20"
adminManager.CommitChanges()
PowerShell
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/webSocket" -name "enabled" -value "True"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/webSocket" -name "receiveBufferLimit" -value 4194303
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/webSocket" -name "pingInterval" -value "00:00:20"
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk