服务端获取流内容
拉取流内容
此接口用于拉取流式消息的完整内容,适用于路由消息仅包含部分流内容的场景。当 App Server 需要获取完整的流式消息时,可通过该接口基于流消息的唯一标识(messageUID
)实时拉取消息内容。通过 SSE(Server-Sent Events)协议,接口返回分为以下两种情况:
- 流已接收完毕:融云服务会全量返回流内容。
- 流正在接收中:返回 stopReason = 29001,表示流仍在生成中,需等待流生成完毕后再完整拉取。
提示
客户端与服务端的区别:
- 客户端拉流:实时接收流内容,无需等待流生成完毕。
- 服务端拉流:需等待流生成完毕后才可获取完整内容。
方法说明
GET: https://数据中心域名/v3/message/get_stream.json
调用频率:每秒钟限 100 次
签名规则: 所有服务端 API 请求均需要进行规则校验,详见 API 请求签名。
正文参数
HTTP 请求正文数据格式为 application/json;charset=UTF-8
,支持以下 Query 参数:
参数 | 类型 | 必传 | 说明 |
---|---|---|---|
messageUID | String | 是 | 流唯一 ID |
请求示例
GET /message/get_stream.json?messageUID=XXXX-JJJJ-KKK-LLLL HTTP/1.1
Host: api.rong-api.com
App-Key: uwd1c0sxdsdlx2
Nonce: 14314
Timestamp: 1408710653491
Signature: 45beb7cc7487889a8e711219a47b7cf6a5b000e8
X-Request-ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXX(最大长度36)
返回结果
HTTP 响应为 SSE 事件,支持 event 和 data 两个字段:
返回值 | 返回类型 | 说明 |
---|---|---|
event | String | 事件类型为 init、delta、complete, 无 event 返回默认 delta |
data | Json Object | 返回数据可能包含 content、stopReason、completeReason、 complete 字段 |
event 解析:
参数 | 类型 | 说明 |
---|---|---|
init | String | SSE 连接初始化事件,表示服务端已收到客户端的请求 |
delta | String | 增量数据事件,默认不返回 event 字段 |
complete | String | 结束流事件,表示本次请求已结束 |
data 解析:
参数 | 类型 | 说明 |
---|---|---|
content | String | 流内容 |
stopReason | String | 服务停止错误码,融云内部定义,参考融云错误码 |
completeReason | String | 异常结束错误码, 发流透传字段,由您发送结束流自定义 |
complete | Boolean | 表示流是否完整 |
返回结果示例
HTTP/1.1 200
Content-Type: text/event-stream;charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 16 Jan 2025 03:56:08 GMT
event:init
data:
data:{"content":"data1data2data3"}
event:complete
data:{"stopReason":29003,"complete":true}