共用方式為


聊天概念

Azure 通訊服務的聊天功能可協助您在跨平台應用程式中新增即時文字通訊。 此頁面將摘要說明重要的聊天概念和功能。 如需 SDK、語言、平台和詳細功能支援的清單,請參閱通訊服務聊天軟體開發套件 (SDK) 概觀

聊天 API 可提供自動縮放服務,讓您持續進行預存文字和資料通訊。 其他主要功能包括:

  • 自訂身分識別和定址 - Azure 通訊服務提供用來定址通訊端點的一般身分識別。 用戶端會使用這些身分識別向 Azure 服務進行驗證,並在您控制的 chat threads 中互相通訊。
  • 加密 - 聊天 SDK 會加密流量,防止流量在網路上遭到竄改。
  • Microsoft Teams 會議 - 聊天 SDK 可以加入 Teams 會議,並使用 Teams 聊天訊息來通訊。
  • 即時通知 - 聊天 SDK 會使用有效率的持續性連線能力 (WebSocket) 來接收即時通知,例如在遠端使用者輸入文字時。 當應用程式在背景中執行時,有內建功能會引發快顯通知,以通知終端使用者有新的執行緒和訊息。
  • Bot 擴充性 - 使用 Azure Bot 整合,輕鬆地將 Azure Bot 新增至聊天服務。

聊天概觀

聊天交談會在聊天對話內進行。 聊天對話具有下列屬性:

  • 聊天對話身分識別是其 ChatThreadId
  • 聊天對話會有 0 到 250 位使用者,參與者可在其中傳送訊息。
  • 使用者可以參與數量不限的聊天對話。
  • 只有對話參與者能夠傳送或接收訊息、新增參與者或移除參與者。
  • 系統會將建立聊天對話的使用者新增為對話參與者。

使用者存取

Azure 通訊服務支援三個層級的使用者存取控制,使用聊天權杖。 如需詳細資訊,請參閱身分識別和權杖。 參與者沒有其他參與者所傳送訊息的寫入權限,這表示只有訊息傳送者可以更新或刪除其傳送的訊息。 如果其他參與者嘗試這麼做,便會收到錯誤。

聊天資料

Azure 通訊服務會根據建立對話時生效的資料保留原則來儲存聊天對話。 您可以在所設定的保留期間內視需要更新保留原則。 在刪除聊天對話 (透過原則或透過刪除 API 要求) 之後,就無法擷取該聊天對話。

重要

本節所述的數據保留原則目前為公開預覽狀態。 此預覽版的服務在沒有服務等級協議的情況下提供,不建議用於生產工作負載。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

您可以選擇無限期保留對話、透過建立聊天對話 API (部分機器翻譯) 上的保留原則在 30 到 90 天後自動刪除,或使用刪除聊天訊息 (部分機器翻譯) 或刪除聊天對話 (部分機器翻譯) API 來立即刪除。

在新的保留原則之前所建立的任何對話,除非您特別變更該對話的原則,否則其不受該新的保留原則所影響。 如果您在保留原則刪除該線程 30 天后提交已刪除聊天對話的支援要求,就無法再擷取該線程,也無法取得該線程的相關信息。 如有需要, 請在建立線程之後,儘快在 30 天內開啟支援票證 ,以便我們協助您。

聊天對話參與者可使用 ListMessages 來檢視特定對話的訊息記錄。 如果某個對話已遭刪除,ListMessages API 就無法傳回該對話的歷程記錄。 從聊天對話中移除的使用者能夠檢視先前的訊息記錄,但無法傳送或接收新訊息。 系統無法復原意外刪除的訊息。 若要深入瞭解 Azure 通訊服務 聊天服務中儲存的數據,請參閱區域可用性和數據落地

對於使用虛擬約會的客戶,請參閱 Teams 互通性使用者隱私權,以了解儲存 Teams 會議中的聊天訊息。

服務限制

  • 聊天對話中允許的參與者數目上限是 250 人。
  • 允許的訊息大小上限大約是 28 KB。
  • 如果聊天對話中的參與者超過 20 人,就不會支援讀取回條和輸入指示器功能。
  • 針對 Teams Interop 案例,Azure 通訊服務使用者 (而非 Teams 使用者) 的數目必須低於 20 人,系統才能支援輸入指標功能。
  • 在建立聊天對話時,您可以設定 30 到 90 天的保留原則。
  • 此外,在 Teams Interop 案例中有下列限制:

聊天架構

聊天結構有兩個核心部分:1) 信任的服務和 2) 用戶端應用程式。

顯示通訊服務聊天架構的圖表。

  • 信任的服務:若要正確管理聊天工作階段,您需要可協助您使用資源連接字串來連線到通訊服務的服務。 此服務負責建立聊天對話、新增和移除參與者,以及對使用者發出存取權杖。 如需詳細資訊,請參閱快速入門:建立和管理存取權杖快速入門 (部分機器翻譯)。
  • 用戶端應用程式:用戶端應用程式會連線到您信任的服務,並接收使用者要直接連線到通訊服務所需要的存取權杖。 在建立聊天對話並新增參與者之後,參與者就可以使用用戶端應用程式來連線到聊天對話並傳送訊息。 參與者可以使用用戶端應用程式中的即時通知來訂閱其他成員的訊息和對話更新。

建置由 AI 支援的智慧型聊天體驗

您可以使用 Azure AI 服務搭配聊天服務來建置如下的使用案例:

  • 藉由偵測客戶所傳入訊息的負面情緒,協助支援專員安排票證的優先順序。
  • 在交談結束時產生摘要,透過電子郵件傳送給客戶,其中包含後續步驟或稍後日期的後續操作。
  • 在具有 Azure Bot 和轉送 Bot 的 Azure 通訊服務聊天頻道中新增 Power Virtual Agent (PVA)。
  • 設定 Bot 連同聊天頻道一起執行一或多個社交頻道。

顯示 Azure 通訊服務可與 Azure AI 服務配對使用的圖表。

訊息類型

聊天會在訊息記錄中分享使用者產生的訊息以及系統產生的訊息。

系統訊息產生時機

  • 已更新聊天對話
  • 已新增或已移除參與者
  • 已更新聊天對話主題。

當您在聊天對話上呼叫 List MessagesGet Messages 時,結果中會同時包含這兩種訊息 (依時間順序排列)。 針對使用者產生的訊息,您可以在傳送訊息至聊天對話時,於 SendMessageOptions 中設定訊息類型。 如果未提供任何值,通訊服務會預設為 text 類型。 在傳送 HTML 時,設定此值是很重要的工作。 指定時 html ,通訊服務會清理內容,以確保它在用戶端裝置上安全地轉譯。

  • text:使用者在聊天對話中撰寫及傳送的純文字訊息。
  • html:使用者在聊天對話中撰寫及傳送的 html 格式化訊息。

系統訊息的類型:

  • participantAdded:指出聊天對話中有一或多位參與者的系統訊息。
  • participantRemoved:表示參與者已從聊天對話中移除的系統訊息。
  • topicUpdated:指出對話主題已更新的系統訊息。

即時通知

JavaScript 聊天 SDK 支援即時通知。 此功能可讓用戶端接聽通訊服務,以得知聊天對話的即時更新和傳入訊息,而不需要輪詢 API。

用戶端應用程式可以訂閱下列事件:

  • chatMessageReceived - 有參與者傳送新訊息至聊天對話時。
  • chatMessageEdited - 有人編輯聊天對話中的訊息時。
  • chatMessageDeleted - 有人刪除聊天對話中的訊息時。
  • typingIndicatorReceived - 其他參與者將輸入指標傳送至聊天對話時。
  • readReceiptReceived - 其他參與者傳送其已讀訊息的讀取回條時。
  • chatThreadCreated - 通訊服務使用者建立聊天對話時。
  • chatThreadDeleted - 通訊服務使用者刪除聊天對話時。
  • chatThreadPropertiesUpdated - 聊天對話屬性有所更新時;目前僅支援更新對話主題。
  • participantsAdded - 有使用者新增為聊天對話參與者時。
  • participantsRemoved - 現有參與者從聊天對話中遭到移除時。
  • realTimeNotificationConnected - 即時通知連線時。
  • realTimeNotificationDisconnected - 即時通知中斷連線時。

注意

即時通知不會與伺服器應用程式搭配使用。

伺服器事件

此功能可讓伺服器應用程式接聽事件,例如傳送訊息時,以及參與者加入或離開聊天時。 伺服器應用程式可以回應這些事件,在聊天中新增/移除參與者、封存聊天、執行分析,以及其他許多協調流程案例。 若要查看哪些聊天活動可供開發人員使用,請參閱 Azure 通訊服務 作為 Azure 事件方格 來源

推播通知

Android 和 iOS 聊天 SDK 支援推播通知。 若要傳送參與者不在時所錯過之訊息的推播通知,請將通知中樞資源與通訊服務資源連線以傳送推播通知。 這麼做會在行動應用程式未在前景執行時,通知應用程式參與者傳入的聊天和訊息。

IOS 和 Android SDK 支援下列事件:

  • chatMessageReceived - 當參與者向聊天對話傳送新訊息時。

Android SDK 支援額外的事件:

  • chatMessageEdited - 當參與者編輯聊天對話中的訊息時。
  • chatMessageDeleted - 當參與者刪除聊天對話中的訊息時。
  • chatThreadCreated - 通訊服務使用者建立聊天對話時。
  • chatThreadDeleted - 通訊服務使用者刪除聊天對話時。
  • chatThreadPropertiesUpdated - 當您更新聊天對話屬性時;目前僅支援更新對話主題。
  • participantsAdded - 當您向聊天對話新增參與者時。
  • participantsRemoved - 當您從聊天對話中移除現有參與者時。

如需詳細資訊,請參閱推播通知

注意

使用通知中樞來傳送聊天推播通知的功能,目前已在 Android 1.1.0 版和 IOS 1.3.0 版中正式推出。

下一步