基本概念
本頁解釋接入時會反覆遇到的名詞。先看下面的速查表,需要細節時再看對應的小節。
速查
| 名詞 | 一句話 | 標識 |
|---|---|---|
| 租戶 | 使用本服務的企業或團隊,計費和管理的單位 | org_name |
| 應用 | 一套獨立的 IM 環境,資料互相隔離 | app_name,AppKey 為 org_name#app_name |
| App Token | 服務端呼叫 REST API 的令牌,代表整個應用 | 用 Client ID 和 Client Secret 換取 |
| IM 使用者 | 你的 App 裡會聊天的人 | username |
| User Token | 使用者在客戶端登入後的令牌,只代表他本人 | 登入時獲得 |
| 會話 | 單聊雙方或一個群裡的訊息流 | conversation_id,訊息按 seq 排序 |
| 群組 | 有固定成員的群 | group_id |
| 聊天室 | 沒有固定成員、不存離線訊息的大房間 | room_id |
| 頻道 | 獨立的音影片頻道,不是群也不是聊天室 | channel_id |
| 執行策略 | 控制應用行為的開關和數值 | 在控制檯設定 |
| 配額、套餐 | 平臺的保護性上限、按套餐給的額度 | 見使用限制 |
租戶與成員
租戶代表一個使用本服務的企業或團隊,是計費和管理的單位。註冊控制檯賬號時會同時建立一個租戶,系統為它生成唯一的 org_name,不能修改。
一個控制檯賬號可以加入多個租戶,在每個租戶中有一個角色:
| 角色 | 說明 |
|---|---|
owner | 租戶的負責人,每個租戶只有一個,可以轉讓 |
admin | 管理員,可以管理應用、憑據、成員和策略 |
developer | 開發者,可以檢視應用、管理 IM 使用者和大部分策略 |
詳見成員與角色。
應用與 AppKey
應用是一套獨立的 IM 環境:使用者、好友、群組和訊息都屬於某個應用,不同應用之間的資料完全隔離。建議為測試環境和生產環境分別建立應用。
每個應用由 app_name 標識,在租戶內唯一,建立後不能修改,刪除後也不能再次使用。org_name 和 app_name 組成應用的 AppKey:
1100250925#demo
└── org_name ┘└ app_name客戶端登入時使用 AppKey;服務端 REST API 的地址中分別使用 org_name 和 app_name。
服務端憑據與 App Token
每個應用有一組服務端憑據:Client ID 和 Client Secret。業務服務端用它們換取 App Token,再用 App Token 呼叫服務端 REST API。App Token 代表整個應用的管理許可權,只能在服務端使用。詳見鑑權與 App Token。
IM 使用者與 User Token
IM 使用者是應用中的終端使用者,即你的 App 中會聊天的人,由使用者名稱(username)唯一標識。使用者名稱在應用內唯一,不區分大小寫。通常在你的使用者註冊時,由業務服務端呼叫介面為他建立一個 IM 使用者,使用者名稱可以使用你係統中的使用者 ID。
使用者在客戶端登入後獲得 User Token,用它呼叫客戶端介面、建立長連線。User Token 只代表這個使用者本人,只能操作他自己的資料。每次登入產生一個會話,對應一臺登入裝置;同一使用者可以在多臺裝置上同時登入,數量由執行策略限制。
會話與訊息
會話是兩個使用者之間(單聊)或一個群中(群聊)的訊息流,由 conversation_id 標識。會話中的每條訊息有一個在會話內從 1 開始遞增的序號 seq,客戶端按序號同步和翻頁,不會遺漏。
每個使用者對一個會話有自己的狀態:已讀到的位置、未讀數、是否置頂、是否刪除了會話等,這些隻影響他自己。詳見訊息格式和會話與歷史訊息。
好友與黑名單
使用者之間可以互加好友:一方發起申請,對方同意後成為好友;業務服務端也可以直接為兩個使用者建立好友關係。使用者可以把其他人加入黑名單,被拉黑的人不能給他發訊息或加他為好友。預設不是好友也能單聊,可以透過執行策略改為只能給好友發訊息。
群組
群組有固定的成員,由 group_id 標識。成員的角色有群主、管理員和普通成員。群可以設定為公開或私有、入群是否需要審批、誰可以邀請成員等。群訊息發給群中的全部成員。
聊天室
聊天室沒有固定成員:使用者進入時加入、離開或斷線時退出,只有在聊天室中的使用者才收到訊息,不儲存離線訊息。它適合直播間、活動現場這類人數多、流動快的場景。聊天室由 room_id 標識,有所有者和管理員,可以禁言、封禁使用者。詳見聊天室管理。
音視訊通話
使用者之間可以發起一對一或群內多人的音視訊通話。呼叫、振鈴、接聽、結束通話等信令和通話記錄由 IM 服務處理,音影片資料由平臺提供的媒體服務承載,你不需要單獨接入其他音影片服務。詳見音視訊通話。
檔案
圖片、語音、影片、檔案等訊息附件,以及使用者頭像、群頭像和群檔案,都要先上傳到 IM 服務,上傳時指定用途,用途決定大小上限、誰能下載和保留多久。檔案內容直接上傳到物件儲存,完成後得到:
- 檔案地址:附件和群檔案的固定地址,寫進訊息中。它本身不能直接下載,要由本應用登入的使用者或你的服務端換取短期有效的下載地址,其他人拿到地址也無法下載;
- 公開地址:頭像的地址,可以直接訪問,填進使用者或群的資料中。
附件預設保留 30 天(可在執行策略中調整),到期後檔案被刪除,訊息本身仍然保留。詳見檔案概述。
離線推送
使用者的裝置不線上時,新訊息、來電等透過手機系統的推送通道(APNs、FCM 和各手機廠商的通道)發出通知。你需要在控制檯上傳各通道的憑據,客戶端登入後登記裝置的推送令牌。詳見離線推送。
事件回撥
事件回撥是 IM 服務主動向你的業務服務端傳送的 HTTP 請求:使用者、好友、群、訊息等發生變化時通知你(事件回撥),或在發訊息、加好友、入群等操作之前詢問你是否允許(同步回撥)。回撥地址和要接收的事件在控制檯配置,每個請求都帶簽名。詳見回撥概述。
內容安全
內容安全在訊息、資料、申請附言和檔案發出前後檢查其中的違規內容,按應用的配置拒絕、替換或事後處置,並記錄違規、自動處罰。詳見內容安全。
長連線與線上狀態
客戶端登入後與服務建立 WebSocket 長連線:新訊息、好友申請、群變化等透過它實時推送到使用者的所有線上裝置。使用者至少有一臺裝置連線著長連線時即為線上,服務端可以查詢使用者的線上狀態。
執行策略與配額
執行策略控制應用的行為,如訊息撤回時限、多端登入的裝置數、是否開啟已讀回執、令牌的有效期。租戶有一套預設策略,每個應用可以單獨覆蓋其中的項。詳見執行策略。
配額是平臺為每個應用設定的保護性上限,如每秒的 REST API 呼叫次數、每分鐘的訊息數,超出時返回 429 rate_limited。詳見限流與應用狀態。
套餐與賬單
每個應用訂閱一個套餐,套餐決定註冊使用者數、併發連線數、儲存空間、併發通話數等額度,用滿時相應的操作被拒絕。用量每天統計,每個租戶每月一張賬單。詳見套餐與賬單。
獨立 RTC 頻道
頻道用業務 channel_id 標識,與 IM 群、訊息聊天室和原通話分開。頻道會話是某個使用者在本登入裝置上的一次參與,用字串 session_id 標識;媒體房間名不是業務頻道 ID。
開放頻道接受本應用登入使用者;受控頻道使用服務端給指定使用者簽發的一次性票據。角色 publisher 允許釋出,subscriber 只接收。票據、IM 登入 Token 和媒體 Token 各有用途,不能互相替代。詳見頻道概述。
