Skala ASP.NET Core SignalR-program med hjälp av Azure SignalR Service
Utveckla SignalR-appar
SignalR är för närvarande tillgängligt i två versioner för användning med webbprogram:
- ASP.NET SignalR
- nya ASP.NET Core SignalR
ASP.NET Core SignalR är en omarbetning av den föregående versionen. Därför är ASP.NET Core SignalR inte bakåtkompatibel med den tidigare SignalR-versionen. Både API:er och beteenden skiljer sig åt. Azure SignalR Service stöder båda versionerna.
Med Azure SignalR Service kan du vara värd för ditt faktiska webbprogram på flera plattformar (Windows, Linux och macOS) Azure App Service, IIS, Nginx, Apache, Docker. Du kan också själv stå för anslutningen till Internet i en egen process.
Azure SignalR Service är det bästa valet om målen för ditt program är:
- stöd för de senaste funktionerna för att uppdatera webbklienter med uppdateringar av realtidsinnehåll,
- körs på flera plattformar (Azure, Windows, Linux och macOS)
- värdtjänster i olika miljöer
Varför inte distribuera SignalR på egen hand?
Det är fortfarande en giltig metod att distribuera din egen Azure-webbapp med stöd för SignalR som en serverdelskomponent till ditt övergripande webbprogram.
Ett av de viktigaste skälen till att använda Azure SignalR Service är enkelheten. Med Azure SignalR Service behöver du inte hantera problem med prestanda, skalbarhet och tillgänglighet. Sådana problem hanteras åt dig med ett servicenivåavtal på 99,9 %.
WebSockets är också normalt den teknik som föredras för stöd för innehållsuppdateringar i realtid. Belastningsutjämning av ett stort antal beständiga WebSocket-anslutningar blir dock ett komplicerat problemet att lösa vid skalning. Vanliga lösningar används: DNS-belastningsutjämning, maskinvarulastbalanserare och belastningsutjämning av programvara. Azure SignalR Service hanterar problemen åt dig.
För ASP.NET Core SignalR kan en annan orsak vara att du inte har några krav på att faktiskt vara värd för ett webbprogram alls. Logiken i ditt webbprogram kan använda serverlös databehandling. Som exempel kanske din kod bara hanteras och körs på begäran med Azure Functions-utlösare. Det här scenariot kan vara svårt eftersom koden bara körs på begäran och inte underhåller långa anslutningar med klienter. Azure SignalR Service kan hantera den detta eftersom tjänsten redan hanterar anslutningar för dig. Mer information finns i översikten över hur du använder SignalR Service med Azure Functions. Eftersom ASP.NET SignalR använder ett annat protokoll stöds inte sådant serverlöst läge för ASP.NET SignalR.
Hur går skalningen till?
Det är vanligt att skala SignalR med SQL Server, Azure Service Bus eller Azure Cache for Redis. Azure SignalR Service hanterar skalningsarbetet åt dig. Prestandan och kostnaden kan jämföras med dessa metoder utan komplexiteten som är förknippad med hanteringen av dessa övriga tjänster. Allt du behöver göra är att uppdatera antal enheter för din tjänst. Varje enhet stöder upp till 1 000 klientanslutningar.