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

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

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

整合即時通訊與 Azure 服務

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

  • HTTP 和 Webhook 要求
  • 定期計時器
  • 來自 Azure 服務的事件,例如:
    • 事件方格
    • 事件中樞
    • 服務匯流排
    • 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 來連線到服務,且即將推出更多語言。

範例案例

如何使用 SignalR Service 系結的範例是使用 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 Functions 是由使用 Azure Cosmos DB 觸發程式的變更事件觸發。
  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 系結,請參閱: