使用 Azure SignalR Service 與 Azure Functions 打造即時應用程式
Azure SignalR Services 搭配 Azure Functions 可讓您在無伺服器環境中執行即時傳訊 Web 應用程式。 本文提供上述服務如何協力運作的概觀。
Azure SignalR Service 和 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 服務整合,您可以在每當事件發生時通知成千上萬的用戶端。
您可以使用 Azure Functions 與 SignalR 服務實作的一些常見即時無伺服器傳訊案例包括:
- 在即時儀表板或地圖上將 IoT 裝置遙測資料視覺化。
- 在 Azure Cosmos DB 中的文件更新時,更新應用程式中的資料。
- 當新訂單在 Salesforce 中建立時,傳送應用程式內通知。
適用於 Azure Functions 的 SignalR Service 繫結
「適用於 Azure Functions 的 SignalR 服務繫結」可讓 Azure Function 應用程式發佈訊息到連線至 SignalR 服務的用戶端。 用戶端可以使用 SignalR 用戶端 SDK (您可以在 .NET、JavaScript 與 Java 中找到此 SDK) 連線到服務。
範例案例
使用 Azure Functions 與 Azure Cosmos DB 整合是當 Azure Cosmos DB 變更摘要上出現新事件時,利用 SignalR Service 繫結傳送即時訊息的範例。
- 在 Azure Cosmos DB 集合中進行了變更。
- 變更事件會填入到 Azure Cosmos DB 變更摘要。
- Azure Cosmos DB 觸發程序啟動 Azure Function 以回應變更事件。
- SignalR Service 輸出繫結會發佈訊息到 SignalR Service。
- SignalR Service 會將訊息發佈到所有連線的用戶端。
驗證和使用者
SignalR Service 可讓您將訊息廣播到所有用戶端或子集,例如屬於單一使用者的用戶端。 您可以將 Azure Functions 的 SignalR Service 繫結與 App Service 驗證相結合,以使用 Microsoft Entra ID、Facebook 和 X 等提供者對使用者進行驗證。然後,您可以直接向這些已驗證的使用者傳送訊息。
下一步
如需如何一起使用 Azure Functions 和 SignalR Service 的完整詳細資料,請造訪下列資源:
若要嘗試適用於 Azure Functions 的 SignalR Service 繫結,請參閱: