共用方式為


Azure Web PubSub 基本概念

Azure Web PubSub 服務可協助您建置即時傳訊 Web 應用程式。 用戶端會使用標準 WebSocket 通訊協定連線到服務,而服務會公開 REST API 和 SDK,讓您管理這些用戶端。

詞彙

以下是本服務使用的一些重要字詞:

  • 連線:連線,也稱為用戶端或用戶端連線,這是用戶端與 Web PubSub 服務之間的邏輯關聯性。 透過「連線」,用戶端和服務會參與一系列具狀態互動。 使用不同通訊協定的連線可能會有不同運作方式,例如,某些連線僅限於網路連線的持續時間,而其他連線則可跨用戶端與服務之間的多個連續網路連線進行擴充。

  • 中樞:中樞是一組用戶端連線的邏輯概念。 您通常會針對一個案例使用一個中樞,例如,聊天中樞或通知中樞。 用戶端連線在連線時會連線到中樞,並且在其存留期內屬於該中樞。 用戶端連線一旦連線到中樞,中樞便會存在。 不同的應用程式可以使用不同的中樞名稱來共用一個 Azure Web PubSub 服務。 雖然中樞數目沒有嚴格限制,但與群組相比,中樞耗用更多服務負載。 建議有一組預先決定的中樞,而不是以動態方式產生中樞。

  • 群組:群組是中樞連線的子集。 您可以隨時將用戶端連線新增至某個群組,或從群組中移除用戶端連線。 例如,當用戶端加入聊天室時,或當用戶端離開聊天室時,便可將此聊天室視為群組。 用戶端可以加入多個群組,群組則可以包含多個用戶端。 群組就像是群組「會議」,一旦有人加入群組,系統就會建立群組會議,當群組中沒有任何人時,會議就會消失。 傳送至群組的訊息會傳遞至與群組連線的所有用戶端。

  • 使用者:Web PubSub 的連線可以屬於一個使用者。 使用者可能會有多個連線,例如,當單一使用者跨多個裝置或多個瀏覽器索引標籤連線時。

  • 訊息:當用戶端連線時,其可以透過 WebSocket 連線將訊息傳送至上游應用程式,或從上游應用程式接收訊息。 訊息可以是純文字、二進位或 JSON 格式,且大小上限為 1 MB。

  • 用戶端事件:系統會在用戶端連線的生命週期內建立事件。 例如,簡單 WebSocket 用戶端連線會在嘗試連線到服務時建立 connect 事件、在成功連線到服務時建立 connected 事件、在將訊息傳送到服務時建立 message 事件,以及在與服務中斷連線時建立 disconnected 事件。 <用戶端通訊協定>一節會有「用戶端事件」的詳細說明。

  • 事件處理常式:事件處理常式包含處理用戶端事件的邏輯。 請事先透過入口網站或 Azure CLI,在服務中註冊和設定事件處理常式。 <事件處理常式>一節會有詳細說明。

  • 事件接聽程式 (預覽):事件接聽程式只會接聽用戶端事件,但無法透過其回應干擾用戶端的存留期。 <事件接聽程式>一節會有詳細說明。

  • 伺服器:伺服器可以處理用戶端事件、管理用戶端連線,或將訊息發佈至群組。 事件處理常式和事件接聽程式都會視為伺服器端。 <伺服器通訊協定>一節會有伺服器的詳細說明。

重要

當您管理用戶端並傳送訊息時,HubGroupUserId 是重要的角色。 它們會是不同 REST API 呼叫中作為純文字的必要參數。 因此,請勿在這些欄位中放置敏感性資訊。 例如,具有高外洩風險的認證或持有人權杖。

工作流程

使用服務的一般工作流程如下所示:

顯示 Web PubSub 服務工作流程的圖表。

如上方工作流程圖表所示:

  1. 「用戶端」會使用 WebSocket 傳輸來連線至服務中樞。 服務可能會將訊息轉送至設定的上游 (伺服器),或自行處理訊息,並允許用戶端直接進行發行/訂閱,具體取決於用戶端使用的通訊協定。 <用戶端通訊協定>會有詳細說明。

  2. 在不同的用戶端事件上,服務會使用 CloudEvents 通訊協定叫用伺服器。 CloudEvents 會以標準化且與通訊協定無關的方式定義 Cloud Native Computing Foundation (CNCF) 所裝載事件的結構和中繼資料描述。 通訊協定通訊協定中會有詳細說明。

  3. 伺服器可以使用 REST API 叫用服務,以將訊息傳送至用戶端,或管理已連線的用戶端。 <伺服器通訊協定>會有詳細說明