Tanya Jawab Umum Azure SignalR Service

Apakah Azure SignalR Service siap untuk penggunaan produksi?

Ya, baik dukungan untuk ASP.NET Core SignalR dan ASP.NET SignalR semuanya tersedia secara umum.

Ketika ada beberapa server aplikasi, apakah pesan klien dikirim ke semua server atau hanya salah satunya?

Ada pemetaan satu-ke-satu antara klien dan server aplikasi. Pesan dari satu klien selalu dikirim ke server aplikasi yang sama.

Pemetaan dipertahankan hingga klien atau server aplikasi terputus.

Jika salah satu server aplikasi saya sedang tidak berfungsi, bagaimana saya bisa menemukannya dan mendapatkan pemberitahuan?

Azure SignalR Service memantau heartbeat dari server aplikasi. Jika heartbeat tidak diterima untuk jangka waktu tertentu, server aplikasi dianggap offline. Semua koneksi klien yang dipetakan ke server aplikasi ini akan terputus sambungannya.

Mengapa 'IUserIdProvider' kustom saya memberikan pengecualian saat saya beralih dari ASP.NET Core SignalR SDK ke Azure SignalR Service SDK?

Parameter HubConnectionContext context berbeda antara ASP.NET Core SignalR SDK dan Azure SignalR Service SDK saat IUserIdProvider dipanggil.

Di ASP.NET Core SignalR, HubConnectionContext context adalah konteks dari koneksi klien fisik dengan nilai yang valid untuk semua properti.

Di Azure SignalR Service SDK, HubConnectionContext context adalah konteks dari koneksi klien logis. Klien fisik tersambung ke instans Azure SignalR Service, jadi hanya sejumlah properti yang disediakan.

Untuk saat ini, hanya HubConnectionContext.GetHttpContext() dan HubConnectionContext.User yang tersedia untuk diakses. Anda dapat memeriksa kode sumber.

Bisakah saya mengonfigurasi transportasi yang tersedia di Azure SignalR Service di sisi server dengan ASP.NET Core SignalR? Misalnya, bisakah saya menonaktifkan transportasi WebSocket?

Ya. Lihat Konfigurasi Transportasi untuk cara mengonfigurasi.

Anda juga dapat mengonfigurasi transportasi sisi klien seperti yang didokumenkan dalam konfigurasi ASP.NET Core SignalR.

Apa arti metrik seperti jumlah pesan atau jumlah koneksi yang diperlihatkan di portal Azure? Jenis agregasi jenis apa yang harus saya pilih?

Anda dapat menemukan detail tentang kami menghitung metrik ini di Pesan dan koneksi di Azure SignalR Service.

Pada panel ringkasan sumber daya Azure SignalR Service, kami telah memilih jenis agregasi yang sesuai untuk Anda. Anda dapat menggunakan Metrik yang didukung dengan Azure Monitor sebagai referensi.

Apa arti dari mode layanan 'Default', 'Tanpa Server', dan 'Klasik'? Bagaimana saya bisa memilih?

Untuk aplikasi baru, hanya mode default dan tanpa server yang harus digunakan. Perbedaan utamanya adalah apakah Anda memiliki server aplikasi yang membuat koneksi server ke layanan (misalnya, gunakan AddAzureSignalR() untuk menyambungkan ke layanan). Jika ya gunakan mode default, jika tidak gunakan mode tanpa server.

Mode klasik dirancang untuk kompatibilitas mundur untuk aplikasi yang ada sehingga tidak boleh digunakan untuk aplikasi baru.

Untuk informasi selengkapnya tentang mode layanan, lihat Mode layanan di Azure SignalR Service.

Bisakah saya mengirim pesan dari klien dalam mode tanpa server?

Anda dapat mengirim pesan dari klien jika mengonfigurasi titik akhir upstram dalam instans SignalR Anda. Titik akhir upstream adalah sekumpulan titik akhir yang dapat menerima pesan dan peristiwa koneksi dari layanan SignalR. Jika tidak ada titik akhir upstream yang dikonfigurasi, pesan dari klien akan diabaikan.

Untuk informasi selengkapnya.lihat Titik akhir upstram.

Fitur titik akhir upstream saat ini dalam pratinjau publik.

Apakah ada perbedaan fitur dalam menggunakan Azure SignalR Service dengan ASP.NET SignalR?

Saat Anda menggunakan Azure SignalR Service, beberapa API dan fitur ASP.NET SignalR tidak didukung:

  • Kemampuan untuk melewati status arbitrer antara klien dan hub (sering disebut HubState) tidak didukung.
  • Kelas PersistentConnection tidak didukung.
  • Transportasi Forever Frame tidak didukung.
  • Azure SignalR Service tidak lagi memutar ulang pesan yang dikirim ke klien saat klien offline.
  • Saat Anda menggunakan Azure SignalR Service, lalu lintas untuk satu koneksi klien selalu dirutekan (juga disebut lekat) ke satu instans server aplikasi selama durasi koneksi.

Dukungan untuk ASP.NET SignalR difokuskan pada kompatibilitas, jadi tidak semua fitur baru dari ASP.NET Core SignalR didukung. Misalnya, MessagePack dan Streaming hanya tersedia untuk aplikasi ASP.NET Core SignalR.

Anda dapat mengonfigurasi Azure SignalR Service untuk mode layanan yang berbeda: Classic, Default, dan Serverless. Serverless Mode tidak didukung untuk ASP.NET. REST API bidang data juga tidak didukung.

Di mana data saya berada?

Azure SignalR Service tidak menyimpan data pelanggan apa pun. Jika Anda menggunakan Azure SignalR Service bersama dengan layanan Azure lainnya, seperti Azure Storage untuk diagnostik, lihat Gambaran Umum Privasi Azure (laporan resmi) untuk panduan tentang cara menyimpan residensi data di wilayah Azure.

Bagaimana cara memilih antara layanan Azure SignalR dan layanan Azure Web PubSub?

Baik Layanan Azure SignalR dan Layanan Azure Web PubSub membantu pelanggan membangun aplikasi web real-time dengan mudah dengan skala besar dan ketersediaan tinggi dan memungkinkan pelanggan untuk fokus pada logika bisnis mereka alih-alih mengelola infrastruktur perpesanan. Secara umum, Anda dapat memilih Azure SignalR Service jika Anda sudah menggunakan pustaka SignalR untuk membangun aplikasi real time. Sebaliknya, jika Anda mencari solusi umum untuk membangun aplikasi real-time berdasarkan WebSocket dan pola publish-subscribe, Anda dapat memilih layanan Azure Web PubSub. Layanan Azure Web PubSub bukan pengganti Azure SignalR Service dan sebaliknya; mereka menargetkan skenario yang berbeda. Panduan berikut akan membantu Anda memutuskan layanan mana yang akan digunakan untuk skenario Anda.

Azure SignalR Service lebih cocok jika:

  • Anda sudah menggunakan ASP.NET atau ASP.NET Core SignalR, terutama menggunakan .NET atau perlu berintegrasi dengan ekosistem .NET (seperti Blazor).
  • Ada klien SignalR yang tersedia untuk platform Anda.
  • Anda memerlukan protokol mapan yang mendukung berbagai macam:
    • pola panggilan (RPC dan streaming)
    • transportasi (WebSocket, peristiwa yang dikirim server, dan polling panjang)
  • Anda memerlukan klien yang mengelola masa pakai koneksi atas nama Anda.

Azure Web PubSub lebih cocok untuk situasi di mana:

  • Anda perlu membangun aplikasi real-time berdasarkan teknologi WebSocket atau publish-subscribe melalui WebSocket.
  • Anda ingin membangun subprotokol Anda sendiri atau menggunakan protokol lanjutan yang ada melalui WebSocket (misalnya, MQTT, AMQP melalui WebSocket).
  • Anda mencari server yang ringan, misalnya, mengirim pesan ke klien tanpa melalui backend yang dikonfigurasi.