分享方式:


使用 Azure SignalR 服務和 Azure Functions 的即時應用程式

與 Azure Functions 結合的 Azure SignalR Services 可讓您在無伺服器環境中執行即時傳訊 Web 應用程式。 本文提供服務如何共同運作的概觀。

Azure SignalR 服務和 Azure Functions 都是完全受控、可高度擴充的服務。 它們可讓您專注於建置應用程式,而不是管理基礎結構。 通常一起使用這兩個服務,在 伺服器環境中提供實時通訊。

整合實時通訊與 Azure 服務

Azure Functions 服務可讓您以 多種語言撰寫程式代碼,包括 JavaScript、Python、C# 和 Java,可在雲端發生事件時觸發。 這些事件的範例包括:

  • HTTP 和 Webhook 要求
  • 定期計時器
  • 來自 Azure 服務的事件,例如:
    • Event Grid
    • 事件中樞
    • 服務匯流排
    • Azure Cosmos DB 變更摘要
    • 儲存體 Blob 和佇列
    • Logic Apps 連接器,例如 Salesforce 和 SQL Server

藉由使用 Azure Functions 將這些事件與 Azure SignalR Service 整合,您就能夠在事件發生時通知數千個用戶端。

您可以使用 Azure Functions 和 SignalR Service 實作的即時無伺服器傳訊的一些常見案例包括:

  • 將即時儀錶板或地圖上的IoT裝置遙測可視化。
  • 在 Azure Cosmos DB 中更新檔時,更新應用程式中的數據。
  • 在 Salesforce 中建立新訂單時傳送應用程式內通知。

Azure Functions 的 SignalR 服務系結

Azure Functions 的 SignalR 服務系結可讓 Azure 函式應用程式將訊息發佈至連線至 SignalR 服務的用戶端。 用戶端可以使用 .NET、JavaScript 和 Java 中提供的 SignalR 用戶端 SDK 來連線到服務,且即將推出更多語言。

範例案例

使用 Azure Functions 與 Azure Cosmos DB 整合是使用 SignalR Service 系結在 Azure Cosmos DB 變更摘要上出現新事件時傳送即時訊息的範例。

Azure Cosmos DB、Azure Functions、SignalR Service

  1. Azure Cosmos DB 集合中會進行變更。
  2. 變更事件會傳播至 Azure Cosmos DB 變更摘要。
  3. Azure Cosmos DB 觸發程式會啟動 Azure 函式,以響應變更事件。
  4. SignalR 服務輸出系結會將訊息發佈至 SignalR 服務。
  5. SignalR Service 會將訊息發佈至所有連線的用戶端。

驗證和使用者

SignalR Service 可讓您將訊息廣播給所有或用戶端子集,例如屬於單一使用者的訊息。 您可以將 Azure Functions 的 SignalR Service 系結與 App Service 驗證結合,以向 Microsoft Entra ID、Facebook 和 Twitter 等提供者驗證使用者。 然後,您可以將訊息直接傳送給這些已驗證的使用者。

下一步

如需如何使用 Azure Functions 和 SignalR Service 的完整詳細數據,請造訪下列資源:

若要試用 Azure Functions 的 SignalR Service 系結,請參閱: