跳到主要内容

发送单聊流式消息

单聊发送流式消息

即时通讯服务提供流式消息服务,支持在单聊中发送流式消息。客户端从 5.16.0 版本开始支持该功能。

方法说明

POST: https://数据中心域名/v3/message/private/publish_stream.json

调用频率:每秒钟限 100 次

签名规则: 所有服务端 API 请求均需要进行规则校验,详见 API 请求签名

正文参数

HTTP 请求正文数据格式为 application/json;charset=UTF-8,支持以下参数:

参数类型必传说明
fromUserIdString发送人用户 ID。

注意:发送消息所使用的用户 ID 必须已获取过用户 Token,否则消息一旦触发离线推送,通知内无法正确显示发送者的用户信息。
toUserIdString接收用户 ID。
objectNameString消息类型,固定为 RC:StreamMsg
contentJSON Object流式消息体,格式详见 RC:StreamMsg,单次发送消息最大 128k。
isIncludeSenderInt是否向发件人客户端同步已发消息。1 表示同步,默认值为 0,即不同步。注意,仅设置该参数无法确保发件人客户端一定能获取到该条已发消息,您可能还需要启用其他服务。详见发件人客户端如何同步已发消息
isPersistedInt是否需要为收件人在历史消息云端存储服务中存储此条消息。0 表示不存储;1 表示存储。默认值为 1,存储(依赖单群聊消息云端存储服务)。

此属性不影响离线消息功能,用户未在线时都会转为离线消息?存储。

提示:一般情况下(第 1、2 种情况),客户端是否存储消息不依赖此参数。以下第 3 种情况属于例外:
  1. 如果消息属于内置消息类型,客户端 SDK 会根据消息类型本身的存储属性标识判断是否存入本地数据库。详见[消息类型概述]。
  2. 如果消息属于自定义消息类型,则客户端 SDK 会根据该类型在客户端上注册时的存储属性标识判断是否需要存入本地数据库。
  3. 如果消息属于客户端 App 上未注册自定义消息类型(例如客户端使用的 App 版本过旧),则客户端 SDK 会根据当前参数值确定是否将消息存储在本地。但因消息类型未注册,客户端无法解析显示该消息。
extraContentJSON Object自定义的消息扩展信息,该字段接受 JSON 字符串格式的键值对(key-value pairs)。请注意区别于消息体内的 extra 字段,extraContent 的值在消息发送后可修改,修改方式请参见服务端 API 接口文档消息扩展,或参考各客户端「消息扩展」接口文档。

KV 详细要求:以 Key、Value 的方式进行设置,如:{"type":"3"}。Key 最大 32 个字符,支持大小写英文字母、数字、 特殊字符+ = - _ 的组合方式,不支持汉字。Value 最大 4096 个字符。单次可设置最多 100 对 KV 扩展信息,单条消息最多可设置 300 对 KV 扩展信息。
disableUpdateLastMsgBoolean禁止更新会话最后一条消息。 当该参数为 false 时,发送的该条消息都会进入会话列表; 为 true 时,不会更新到会话列表的消息内容。
:此参数仅对存储在客户端的消息有效。

请求示例

POST /v3/message/private/publish_stream.json  HTTP/1.1
Host: api.rong-api.com
App-Key: uwd1c0sxdsdlx2
Nonce: 14314
Timestamp: 1408710653491
Signature: 45beb7cc7487889a8e711219a47b7cf6a5b000e8
Content-Type: application/json;charset=UTF-8
X-Request-ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXX(最大长度36)

{
"fromUserId": "fId",
"toUserId": "tId",
"objectName": "RC:StreamMsg",
"content": {
"content": "stream-content1",
"complete": false,
"messageUID": "xxxx",
"seq": 1,
"user": {
"id": "4242",
"name": "Robin",
"portrait": "http://example.com/p1.png",
"extra": {
"k": "v"
}
},
"extra": {
"k": "v"
}
},
"isPersisted": 1,
"disableUpdateLastMsg": true
}

返回结果

HTTP 响应正文包含具有以下结构的 JSON 对象:

返回值返回类型说明
codeint返回码, 200 为处理成功
messageUIDString流消息ID, 仅首包发送返回

返回结果示例

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-Request-ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXX

{
"code": 200,
"messageUID": "JUNH-IUKL-IUYT-JKNM"
}