状态同步
功能概述¶
-
订阅后应用下聊天室发生状态变化时,将实时同步到开发者的应用服务器,目前支持的同步状态包括:创建、销毁、成员加入、成员退出聊天室。便于对应用下的聊天室进行数据统计及其他业务逻辑处理。
-
暂不支持同一用户多端同时在线情况下的聊天室状态同步。
开通方式
开发者如需使用此功能,请提交工单申请开通,申请时需提交同步状态的目标应用服务器 URL 地址。
示例说明¶
HTTP 方法:POST
表单参数
名称 | 类型 | 说明 |
---|---|---|
chatRoomId | String | 聊天室 Id。 |
userIds | String[] | 用户 Id 数据。 |
status | String | 操作状态:0 直接调用接口、1 触发融云退出聊天室机制将用户踢出、2 用户被封禁、3 触发融云销毁聊天室机制自动销毁 |
type | String | 聊天室事件类型:0 创建聊天室、1 加入聊天室、2 退出聊天室、3 销毁聊天室 |
time | Long | 发生时间。 |
聊天室成员自动退出机制
聊天室中用户在离线 30 秒后或离线后聊天室中产生 30 条消息时会被自动退出聊天室。如应用场景中有驻留用户,不允许被自动退出聊天室,则需要将用户加入到聊天室白名单中。
聊天室自动销毁机制
聊天室中 1 小时无人说话时,同时没有人加入聊天室时,会把聊天室内所有成员踢出聊天室并销毁聊天室。
提示
同步状态时需要服务提供应答 200,只要有 HTTP 应答码 200 ,融云会认为状态已经同步,如果应答超时 5 秒,融云会再尝试推送 2 次,如果仍然失败,将不再同步此条状态。如短时间内有大面积超时,将暂停推送,1 分钟后会继续推送。异常断网情况下的会延迟 5 分钟同步。
示例
为了验证数据有效性并确保调用者为融云 Server,每个请求前添加数据签名,详细参见 API 接收签名规则,签名信息参数在接收地址的 URL 上提供。
假设开发者注册的接收地址:http://example.com/chatroom_status_sync.php
Request:
POST /chatroom_status_sync.php?signTimestamp=1408710653491&nonce=14314&signature=45beb7cc7307889a8e711219a47b7cf6a5b000e8 HTTP/1.1
Host: example.com
Content-Type: application/json
[
{
"chatRoomId":"destory_11",
"userIds":["gggg"],
"status":0,
"type":1,
"time":1574476797772
},
{
"chatRoomId":"destory_12",
"userIds":[],
"status":0,
"type":0,
"time":1574476797772
}
]