什麼是 Azure SignalR 服務?

Azure SignalR Service 簡化了透過 HTTP 將即時 Web 功能新增到應用程式的程序。 此即時功能可讓服務將內容更新推播至連線的用戶端,例如單一頁面的 Web 或行動應用程式。 因此,用戶端會更新,而不需要輪詢伺服器,或提交新的 HTTP 要求以進行更新。

本文提供 Azure SignalR Service 的概觀。

什麼是 Azure SignalR 服務?

需要即時從伺服器將資料推送到用戶端的任何案例,都可以使用 Azure SignalR Service。

通常需要從伺服器進行輪詢的傳統即時功能也能夠使用 Azure SignalR Service。

Azure SignalR Service 已經運用在各種不同的產業中,需要即時內容更新的應用程式類型。 以下是您可以使用 Azure SignalR Service 的一些範例:

  • 高頻率數據更新: 遊戲、投票、投票和拍賣。
  • 儀錶板和監視: 公司儀錶板、金融市場數據、立即銷售更新、多玩家遊戲排行榜和IoT監視。
  • 聊天: 即時聊天室、聊天機器人、在線客戶支援、實時購物助理、信使和遊戲內聊天。
  • 地圖上的即時位置: 羅吉斯追蹤、交付狀態追蹤、運輸狀態更新和 GPS 應用程式。
  • 實時目標廣告: 個人化的即時推播廣告和供應專案,以及互動式廣告。
  • 共同作業應用程式: 共同撰寫、白板應用程式和小組會議軟體。
  • 推播通知: 社交網路、電子郵件、遊戲和旅行警示。
  • 實時廣播:即時音訊/視訊廣播、即時 標題、翻譯和事件和新聞廣播。
  • IoT 和連接的裝置:即時 IoT 計量、遠端控制、即時狀態,以及位置追蹤。
  • 自動化: 來自上游事件的即時觸發程式。

使用 Azure SignalR Service 有哪些優點?

以標準為基礎的:

SignalR 提供許多用來建置即時 Web 應用程式的技術抽象概念。 WebSocket 是最佳的傳輸方式,但當其他選項無法使用時,會使用伺服器傳送事件 (SSE) 和長輪詢等其他技術。 SignalR 會根據伺服器和用戶端上支援的功能,自動偵測並初始化適當的傳輸。

原生 ASP.NET 核心支援:

SignalR Service 提供搭配 ASP.NET Core 和 ASP.NET 的原生程式設計體驗。 使用 SignalR Service 開發新的 SignalR 應用程式,或從現有的 SignalR 型應用程式移轉至 SignalR 服務需要最少的努力。 SignalR Service 也支援 ASP.NET Core 的新功能 Server-side Blazor。

廣泛的用戶端支援:

SignalR Service 可與廣泛的用戶端搭配使用,例如:

  • Web 和行動瀏覽器
  • 傳統型應用程式
  • 行動裝置應用程式
  • IoT 裝置
  • 遊戲機

多種語言支援:

SignalR Service 提供不同語言的 SDK:

  • 用戶端: 任何支援 SignalR 通訊協定 的用戶端連結庫都與 SignalR 服務相容。
  • 伺服器端:ASP.NET Core 或 ASP.NET Web 應用程式
  • 透過 REST API、Azure Functions 觸發程式和系結,以及 ASP.NET Core SignalR 的事件方格整合,無伺服器支援。

處理大規模的用戶端連線:

SignalR Service 是專為大規模即時應用程式所設計。 SignalR Service 可讓多個實例一起運作,以調整為數百萬個用戶端連線。 此服務也支援多個全域區域進行分區化、高可用性或災害復原。

拿掉自我裝載 SignalR 的負擔:

相較於自我裝載的 SignalR 應用程式,切換至 SignalR 服務將會移除管理處理調整和用戶端連線的後平面的需求。 完全受控的服務也會簡化 Web 應用程式,並節省裝載成本。 SignalR Service 提供全球觸達和世界級的數據中心和網路、調整為數百萬個連線,並提供 Azure 的標準合規性和安全性。

SignalR Service 透過與 Azure Functions 和事件方格整合,同時支援伺服器型組態和無伺服器環境。

Managed SignalR Service

為不同的傳訊模式提供豐富的 API:

SignalR Service 可讓伺服器將訊息傳送至特定連線、所有連線或屬於特定使用者的連線子集,或已置於任意群組中。

如何使用 Azure SignalR 服務

使用 Azure SignalR Service 進行程式設計的方式有很多種。 範例如下:

  • 調整 ASP.NET Core SignalR 應用程式 - 整合 Azure SignalR 服務與 ASP.NET Core SignalR 應用程式,以相應放大至數十萬個連線。
  • 建置無伺服器即時應用程式 - 使用 Azure Functions 與 Azure SignalR Service 整合,以 JavaScript、C# 和 Java 等語言建置無伺服器即時應用程式。
  • 透過 REST API 將訊息從伺服器傳送至用戶端 * Azure SignalR Service 提供 REST API,讓應用程式能夠使用任何支援 REST 的程式設計語言,將訊息張貼至與 SignalR Service 連線的用戶端。