Bagikan melalui


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

  1. Pada taskbar, klik Manajer Server.
  2. Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.
  3. Di wizard Tambahkan Peran dan Fitur , klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.
  4. Pada halaman Peran Server , perluas Server Web (IIS), perluas Server Web, perluas Pengembangan Aplikasi, lalu pilih Protokol WebSocket. Klik Berikutnya.
    Cuplikan layar daftar Pengembangan Aplikasi memperlihatkan Protokol WebSocket dipilih. .
  5. Pada halaman Pilih Fitur , klik Berikutnya.
  6. Pada halaman Konfirmasi pilihan instalasi, klik Instal.
  7. Pada halaman Hasil , klik Tutup.

Windows 8 atau Windows 8.1

  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.
  2. Perluas Layanan Informasi Internet, perluas World Wide Web Services, perluas Fitur Pengembangan Aplikasi, lalu pilih Protokol WebSocket.
    Cuplikan layar memperlihatkan daftar Fitur Pengembangan Aplikasi dengan beberapa pilihan dan Protokol WebSocket disorot.
  3. Klik OK.
  4. 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

  1. 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).
  2. 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.

  3. Di panel Beranda , klik dua kali fitur Editor Konfigurasi .

  4. Untuk situs atau aplikasi, pilih web.config atau applicationHost.config di kotak teks Dari .

  5. Pilih system.webServer/webSocket di kotak teks Bagian .

  6. Atur enabled ke True untuk mengaktifkan webSocket atau False untuk menonaktifkan webSocket. Atur pingInterval dan receiveBufferLimit ke nilai yang diinginkan.

    Cuplikan layar bagian layar Editor Konfigurasi dengan diaktifkan disorot.

  7. 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"