跳转至

状态同步

功能概述

  1. 订阅后应用下聊天室发生状态变化时,将实时同步到开发者的应用服务器,目前支持的同步状态包括:创建、销毁、成员加入、成员退出聊天室。便于对应用下的聊天室进行数据统计及其他业务逻辑处理。

  2. 暂不支持同一用户多端同时在线情况下的聊天室状态同步。

开通方式

开发者如需使用此功能,请提交工单申请开通,申请时需提交同步状态的目标应用服务器 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
  }
]