服務端 SDK
服務端 SDK 封裝了服務端 REST API 和事件回撥:在你的業務服務端用幾行程式碼管理使用者、好友、群組、聊天室,傳送和查詢訊息,簽發登入憑證,並安全地接收回調。它替你處理了以下這些容易出錯的細節:
- App Token:用 Client ID 和 Client Secret 自動換取、快取,過期或失效前重新換取,不必自己管理;
- 重試與限流:網路錯誤、
5xx和429 rate_limited按規則自動退避重試,只重試可以安全重試的請求; - 分頁與批次結果:自動翻頁的迭代器,批次介面的每一項結果都有型別;
- 錯誤:錯誤帶有服務端返回的
code和details,可以直接判斷(Python 另按類別提供異常子類); - 檔案上傳:建立上傳、上傳內容(大檔案自動分片)、完成上傳,一個呼叫完成;
- 接收回調:校驗簽名、防止重放、按事件 ID 去重,把事件回撥和同步回撥分派給你的處理函式。
可用的語言
| 語言 | 包 | 執行環境 | 文件 |
|---|---|---|---|
| Go | github.com/DeepRespond-AI/deeprespond-im-server-go-sdk@v1.0.3(包名 drim) | Go 1.23 以上,只依賴標準庫 | Go SDK、Demo |
| Python | PyPI deeprespond-im-server-sdk==1.0.0a2(匯入名 deeprespond_im) | Python 3.11 以上,同步和非同步兩套介面 | Python SDK、Demo |
| Java / Spring Boot | Maven Central cn.deeprespond:im-server-sdk:1.0.0-alpha.3 | Java 17 以上,Spring Boot 3.5 | Java SDK、Demo |
| Node.js / TypeScript | npm @deeprespond/im-server-sdk@1.0.7 | Node.js 22.17 以上,ES 模組與 CommonJS,沒有執行時依賴 | Node.js SDK、示例 |
四種語言在令牌、重試、分頁和回撥校驗上遵循同樣的規則,命名和錯誤型別按各自語言的習慣。Go 也可以使用下載說明中的原始碼包和 Demo,Node.js 也支援從本地原始碼打包安裝。使用者登入、長連線和會話同步屬於另一套 Go 客戶端 SDK。
四種語言都支援 AI 對話的流式回覆(Go v1.0.2、Python 1.0.0a1、Java 1.0.0-alpha.2、Node.js 1.0.6 起):收到使用者發給機器人的訊息後用 StartStream 開始回覆,Pipe* 直接對接 OpenAI、Anthropic、Gemini 的流,見各語言“呼叫介面”中的“AI 流式回覆”。
四種語言都支援遊戲房間的服務端介面和回撥事件(Go v1.0.3、Python 1.0.0a2、Java 1.0.0-alpha.3、Node.js 1.0.7 起):建房、簽發加入票據、開局、結束和移出玩家,見遊戲房間:服務端介面。
使用前須知
- 只在服務端使用:Client Secret 和 App Token 等同應用管理員的密碼,不要放進瀏覽器、App 或小程式。客戶端請使用 Web SDK 等客戶端 SDK。
- 一個客戶端對應一個應用:客戶端用接入地址、
org_name、app_name、Client ID 和 Client Secret 建立,只調用這個應用的介面。管理多個應用時,為每個應用各建一個客戶端。 - 在程序中複用:客戶端可以被多個執行緒或協程同時使用,內部共享 App Token、連線池和限流等待,請在程序啟動時建立一個,不要每個請求新建。
- 介面的引數和語義以服務端 REST API 為準,SDK 的方法與 REST 介面一一對應,各語言的“服務與方法”頁列出了對照關係。
下一步
- Go SDK:安裝、建立客戶端、呼叫介面、接收回調、服務與方法、Demo 執行指南
- Python SDK:安裝、建立客戶端、呼叫介面、接收回調、服務與方法、Demo 執行指南與下載
- Java / Spring Boot SDK:安裝、配置、AI 流式回覆、服務端示例
- Node.js SDK:快速開始、客戶端配置、呼叫介面、接收回調、服務與方法、示例執行指南、常見問題、版本說明
獨立 RTC 頻道
四種語言都提供管理獨立 RTC 頻道的服務(Go 為 client.Channels,Java 為 im.channels(),Node.js 和 Python 為 client.channels),可以建立、查詢、修改、關閉頻道,簽發和撤銷票據,查詢會話,處置成員,查詢統計和用量更正。使用者加入頻道的音影片要在客戶端完成,服務端 SDK 不能代替。
接入前請確認安裝的版本已經包含這些介面。之前用 Go 的 json.RawMessage 傳頻道引數,或用 Node.js、Python 的通用結果型別讀取頻道的,請改為各自的頻道型別;用法見各語言的“呼叫介面”和“服務與方法”。
