Bagikan melalui


SignalR Scaleout dengan Azure Service Bus (SignalR 1.x)

oleh Patrick Fletcher

Peringatan

Dokumentasi ini bukan untuk versi terbaru SignalR. Lihatlah ASP.NET Core SignalR.

Dalam tutorial ini, Anda akan menyebarkan aplikasi SignalR ke Peran Web Windows Azure, menggunakan backplane Bus Layanan untuk mendistribusikan pesan ke setiap instans peran.

Diagram yang mengilustrasikan hubungan antara Topik Namespace Bus Layanan, Peran Web, serta komputer dan akun yang tersedia.

Prasyarat:

Backplane bus layanan juga kompatibel dengan Service Bus untuk Windows Server, versi 1.1. Namun, ini tidak kompatibel dengan Service Bus versi 1.0 untuk Windows Server.

Harga

Backplane Azure Service Bus menggunakan topik untuk mengirim pesan. Untuk informasi harga terbaru, lihat Azure Service Bus. Pada saat penulisan ini, Anda dapat mengirim 1.000.000 pesan per bulan dengan harga kurang dari $1. Backplane mengirim pesan bus layanan untuk setiap pemanggilan metode hub SignalR. Ada juga beberapa pesan kontrol untuk koneksi, pemutusan sambungan, bergabung atau meninggalkan grup, dan sebagainya. Di sebagian besar aplikasi, sebagian besar lalu lintas pesan akan menjadi pemanggilan metode hub.

Gambaran Umum

Sebelum kita sampai ke tutorial terperinci, berikut adalah gambaran umum singkat tentang apa yang akan Anda lakukan.

  1. Gunakan portal Azure Windows untuk membuat namespace Bus Layanan baru.

  2. Tambahkan paket NuGet ini ke aplikasi Anda:

  3. Membuat aplikasi SignalR.

  4. Tambahkan kode berikut ke Global.asax untuk mengonfigurasi backplane:

    protected void Application_Start()
    {
        string connectionString = "Service Bus connection string";
        GlobalHost.DependencyResolver.UseServiceBus(connectionString, "YourAppName");
    
        RouteTable.Routes.MapHubs();
        // ...
    }
    

Untuk setiap aplikasi, pilih nilai yang berbeda untuk "YourAppName". Jangan gunakan nilai yang sama di beberapa aplikasi.

Membuat Layanan Azure

Buat Cloud Service, seperti yang dijelaskan dalam Cara Membuat dan Menyebarkan Layanan Cloud. Ikuti langkah-langkah di bagian "Cara: Membuat layanan awan menggunakan Buat Cepat". Untuk tutorial ini, Anda tidak perlu mengunggah sertifikat.

Cuplikan layar panel BARU dengan opsi dan ikon Cloud Service disorot dalam aplikasi serta lingkaran merah.

Buat namespace Service Bus baru, seperti yang dijelaskan dalam Cara Menggunakan Topik/Langganan Bus Layanan. Ikuti langkah-langkah di bagian "Buat Namespace Layanan".

Cuplikan layar Tambahkan namespace baru dengan entri yang dimasukkan di bidang Nama Namespace dan Wilayah.

Catatan

Pastikan untuk memilih wilayah yang sama untuk layanan cloud dan namespace Bus Layanan.

Membuat Proyek Visual Studio

Mulai Visual Studio. Dari menu File , klik Proyek Baru.

Dalam kotak dialog Proyek Baru , perluas Visual C#. Di bawah Templat yang Diinstal, pilih Cloud lalu pilih Windows Azure Cloud Service. Pertahankan .NET Framework default 4.5. Beri nama aplikasi ChatService dan klik OK.

Cuplikan layar Proyek Baru dengan opsi Windows Azure Cloud Service Visual C # disorot.

Dalam dialog Windows Azure Cloud Service Baru , pilih ASP.NET Peran Web MVC 4. Klik tombol panah kanan (>) untuk menambahkan peran ke solusi Anda.

Arahkan mouse ke peran baru, sehingga ikon pensil terlihat. Klik ikon ini untuk mengganti nama peran. Beri nama peran "SignalRChat" dan klik OK.

Cuplikan layar Windows Azure Cloud Service Baru dengan opsi Obrolan Signal R disorot di panel solusi Windows Azure Cloud Service.

Di wizard Proyek ASP.NET Baru MVC 4 , pilih Aplikasi Internet. Klik OK. Wizard proyek membuat dua proyek:

  • ChatService: Proyek ini adalah aplikasi Windows Azure. Ini mendefinisikan peran Azure dan opsi konfigurasi lainnya.
  • SignalRChat: Proyek ini adalah proyek MVC 4 ASP.NET Anda.

Membuat Aplikasi Obrolan SignalR

Untuk membuat aplikasi obrolan, ikuti langkah-langkah dalam tutorial Memulai SignalR dan MVC 4.

Gunakan NuGet untuk menginstal pustaka yang diperlukan. Dari menu Alat , pilih Manajer Paket NuGet, lalu pilih Konsol Manajer Paket. Di jendela Konsol Manajer Paket , masukkan perintah berikut:

Install-Package -ProjectName SignalRChat Microsoft.AspNet.SignalR
Install-Package -ProjectName SignalRChat Microsoft.AspNet.SignalR.ServiceBus

-ProjectName Gunakan opsi untuk menginstal paket ke proyek MVC ASP.NET, bukan proyek Windows Azure.

Mengonfigurasi Backplane

Dalam file Global.asax aplikasi Anda, tambahkan kode berikut:

protected void Application_Start()
{
    string connectionString = "";
    GlobalHost.DependencyResolver.UseServiceBus(connectionString, "Chat");  

    RouteTable.Routes.MapHubs();
}

Sekarang Anda perlu mendapatkan string koneksi bus layanan Anda. Di portal Azure, pilih namespace bus layanan yang Anda buat dan klik ikon Kunci Akses.

Cuplikan layar opsi dan ikon Buat, Kunci Akses, dan Hapus di namespace bus layanan dengan fokus pada opsi Buat.

Salin string koneksi ke clipboard, lalu tempelkan ke variabel connectionString .

Cuplikan layar Access Key Connect ke namespace Anda, memperlihatkan bidang String Koneksi, Penerbit Default, dan Kunci Default.

string connectionString = "Endpoint=sb://xxxx.servicebus.windows.net/;
SharedSecretIssuer=owner;SharedSecretValue=XXXXXXXX";

Sebarkan ke Azure

Di Penjelajah Solusi, perluas folder Peran di dalam proyek ChatService.

Cuplikan layar pohon Penjelajah Solusi memperlihatkan opsi Obrolan Signal R yang terkandung dalam folder Peran proyek Layanan Obrolan.

Klik kanan peran SignalRChat dan pilih Properti. Pilih tab Konfigurasi . Di bawah Instans pilih 2. Anda juga dapat mengatur ukuran VM ke Ekstra Kecil.

Cuplikan layar bagian Instans Tab Konfigurasi, memperlihatkan 2 yang dimasukkan ke bidang Jumlah instans dan bidang Ukuran V M diatur ke Ekstra Kecil.

Simpan perubahan.

Di Penjelajah Solusi, klik kanan proyek ChatService. Pilih Terbitkan.

Cuplikan layar proyek Layanan Obrolan layar Penjelajah Solusi, dengan menu dropdown klik kanan memperlihatkan Terbitkan... Pilihan.

Jika ini adalah pertama kalinya Anda menerbitkan ke Windows Azure, Anda harus mengunduh kredensial Anda. Di wizard Terbitkan , klik "Masuk untuk mengunduh kredensial". Ini akan meminta Anda untuk masuk ke Windows portal Azure dan mengunduh file pengaturan penerbitan.

Cuplikan layar tab Terbitkan Masuk Aplikasi Windows Azure dengan tautan Masuk untuk mengunduh kredensial yang disorot.

Klik Impor dan pilih file pengaturan penerbitan yang Anda unduh.

Klik Berikutnya. Dalam dialog Terbitkan Pengaturan , di bawah Layanan Awan, pilih layanan awan yang Anda buat sebelumnya.

Cuplikan layar tab Terbitkan Pengaturan layar Aplikasi Windows Azure, memperlihatkan bidang Layanan Awan di tab Pengaturan Umum.

Klik Terbitkan. Dibutuhkan beberapa menit untuk menyebarkan aplikasi dan memulai VM.

Sekarang ketika Anda menjalankan aplikasi obrolan, instans peran berkomunikasi melalui Azure Service Bus, menggunakan topik Bus Layanan. Topik adalah antrean pesan yang memungkinkan beberapa pelanggan.

Backplane secara otomatis membuat topik dan langganan. Untuk melihat langganan dan aktivitas pesan, buka portal Azure, pilih namespace Service Bus, dan klik "Topik".

Cuplikan layar bidang Cloud Service yang dipilih sekarang terisi di portal Azure, dengan bidang Nama Layanan Cloud disorot.

Dibutuhkan beberapa menit agar aktivitas pesan muncul di dasbor.

Cuplikan layar dasbor portal Azure menampilkan garis waktu aktivitas pesan, memperlihatkan garis biru dan ungu untuk menunjukkan riwayat pesan yang berbeda.

SignalR mengelola masa pakai topik. Selama aplikasi Anda disebarkan, jangan mencoba menghapus topik secara manual atau mengubah pengaturan pada topik.