Kapan menggunakan ASP.NET Core SignalR

Selesai

SignalR menyediakan fungsionalitas web real time. Ingat bahwa Contoso Pizza memerlukan peta langsung untuk melacak status dan pengiriman pesanan. Hilangnya penjualan selama jam sibuk mendorong tim untuk menyelidiki solusi yang lebih baik daripada polling pihak klien.

Kriteria keputusan

Mengetahui kapan tidak memilih SignalR sama pentingnya dengan mengetahui kapan harus memilihnya. Dengan fungsionalitas web real time, pengalaman pengguna aplikasi bergantung pada daya tanggapnya. Yang terbaik adalah memahami bagian mana dari aplikasi yang memerlukan pembaruan real time.

Kapan untuk tidak menggunakan SignalR

SignalR hanya sams tahan lamanya seperti sambungan yang mendasarnya. Artinya, jika ada penyebab kekhawatiran dengan konektivitas aplikasi klien, SignalR bukanlah pilihan terbaik.

Pertimbangan lain adalah skalabilitas SignalR. Bergantung pada jumlah klien yang terhubung secara bersamaan, server web Anda dapat mengalami ketidakcocokan sumber daya ketika mencapai batasnya. Dalam situasi seperti ini, Anda mungkin perlu menyebarkan aplikasi ke farm server dan menggunakan backplane. Menerapkan ini sendiri bisa membosankan.

Atau, Anda dapat mengatasi masalah ini dengan menggunakan Azure SignalR Service. Atau Anda dapat membantu meringankannya dengan memanfaatkan berbagai mekanisme ketahanan dan pemulihan kerusakan.

Contoh modalitas SignalR

Anda dapat menggunakan SignalR lokal, di cloud, atau dengan Azure SignalR Service.

  • Lokal:

    Diagram of ASP.NET Core SignalR being used on-premises.

  • Di cloud:

    Diagram of ASP.NET Core SignalR being used in the cloud.

  • Dengan Azure SignalR Service:

    Diagram of using Azure SignalR Service.

Kasus penggunaan yang valid

SignalR bukan pengganti permintaan HTTP tradisional. Aplikasi dapat menggunakan SignalR untuk mengetahui kapan harus membuat permintaan HTTP tertentu. Dengan cara ini, mereka saling melengkapi.

Ada banyak kasus penggunaan yang valid untuk SignalR. Daftar berikut mewakili kandidat yang baik untuk SignalR:

  • Aplikasi yang memerlukan pembaruan frekuensi tinggi dari server:
    • Permainan
    • Jejaring sosial
    • Pemungutan suara
    • Lelang
    • Aplikasi GPS
  • Dasbor dan aplikasi pemantauan:
    • Dasbor perusahaan
    • Peta langsung
    • Pembaruan penjualan instan
    • Pemberitahuan perjalanan
    • Halaman alur integrasi berkelanjutan/pengiriman berkelanjutan (CI/CD)
  • Aplikasi interaktif kolaboratif dan multi-pengguna:
    • Aplikasi papan tulis
    • Aplikasi rapat tim
    • Aplikasi berbagi dokumen
    • Visual Studio Live Share
  • Aplikasi yang memerlukan pemberitahuan instan:
    • Aplikasi email
    • Aplikasi obrolan
    • Game berbasis giliran
    • Pelaporan rangkaian waktu
    • GitHub Action, masalah, dan sistem permintaan pull

Skenario Contoso Pizza

Jika Anda mempertimbangkan solusi polling pihak klien di peta pesanan langsung Contoso Pizza, SignalR bisa menjadi alternatif yang layak. Seperti semua keputusan pemrograman dan arsitektur, sangat penting untuk menimbang kelebihan dan kekurangan SignalR.