服务端 SDK
服务端 SDK 封装了服务端 REST API 和事件回调:在你的业务服务端用几行代码管理用户、好友、群组、聊天室,发送和查询消息,签发登录凭证,并安全地接收回调。它替你处理了以下这些容易出错的细节:
- App Token:用 Client ID 和 Client Secret 自动换取、缓存,过期或失效前重新换取,不必自己管理;
- 重试与限流:网络错误、
5xx和429 rate_limited按规则自动退避重试,只重试可以安全重试的请求; - 分页与批量结果:自动翻页的迭代器,批量接口的每一项结果都有类型;
- 错误:错误带有服务端返回的
code和details,可以直接判断(Python 另按类别提供异常子类); - 文件上传:创建上传、上传内容(大文件自动分片)、完成上传,一个调用完成;
- 接收回调:校验签名、防止重放、按事件 ID 去重,把事件回调和同步回调分派给你的处理函数。
可用的语言
| 语言 | 包 | 运行环境 | 文档 |
|---|---|---|---|
| Go | github.com/deeprespond/im/sdk/server/go(包名 drim) | Go 1.23 以上,只依赖标准库 | Go SDK |
| Python | deeprespond-im-server-sdk(导入名 deeprespond_im) | Python 3.11 以上,同步和异步两套接口 | Python SDK |
| Node.js / TypeScript | @deeprespond/im-server-sdk | Node.js 22.17 以上,ES 模块与 CommonJS,无运行时依赖 | Node.js SDK |
Java 版正在规划中。已实现的三种语言在令牌、重试、分页和回调校验上采用共同规则,命名和错误类型按各自语言的习惯。Node.js 当前通过源码打包安装,公共 npm 发布渠道尚未完成。
使用前须知
- 只在服务端使用:Client Secret 和 App Token 等同应用管理员的密码,不要放进浏览器、App 或小程序。客户端请使用 Web SDK 等客户端 SDK。
- 一个客户端对应一个应用:客户端用接入地址、
org_name、app_name、Client ID 和 Client Secret 创建,只调用这个应用的接口。管理多个应用时,为每个应用各建一个客户端。 - 在进程中复用:客户端可以被多个线程或协程同时使用,内部共享 App Token、连接池和限流等待,请在进程启动时创建一个,不要每个请求新建。
- 接口的参数和语义以服务端 REST API 为准,SDK 的方法与 REST 接口一一对应,各语言的“服务与方法”页列出了对照关系。
下一步
Python SDK:安装、创建客户端、调用接口、接收回调、服务与方法
Node.js SDK:安装、创建客户端、调用接口、接收回调、服务与方法
独立 RTC 频道
Go 的 client.Channels 与 Node.js / Python 的 client.channels 已提供频道管理强类型服务,覆盖创建、查询、修改、关闭、票据、会话、成员处置、统计及更正。客户端媒体加入不由服务端 SDK 代替。
本轮源码 API 和模型已更新,尚未发布新制品。旧 Go json.RawMessage 频道参数及 Node.js / Python 通用结果模型需迁移为具体类型;用法见各语言的调用接口和服务参考。
