聊天室状态同步
聊天室状态同步是即时通讯服务提供的回调服务,支持将应用下聊天室的状态变化实时同步到指定的应用服务器地址。目前支持同步以下状态:
- 创建聊天室
- 销毁聊天室
- 成员加入聊天室
- 成员退出聊天室
提示
不支持同一用户多端同时在线情况下的聊天室状态同步。
开通服务
使用聊天室状态同步 功能前,请确认已为当前 App Key 开通相关服务。详见聊天室服务配置。
开通服务时,请配置可正常访问的回调接收地址。如果您的网络有 IP 访问限制,请务必配置 IP 白名单,否则无法正常接收服务端回调。
回调方法
请求方法: POST
数据格式: application/json
即时通讯服务端会在 POST 请求 URL 中添加签名参数,您可通过签名验证调用者身份和数据有效性,详细参见 服务端回调签名。
正文参数
该回调服务的 HTTP 请求正文数据格式为 application/json
,包含具有以下结构的 JSON 对象:
参数 | 类型 | 说明 |
---|---|---|
chatRoomId | String | 聊天室 ID。 |
userIds | String[] | 用户 ID 数据。 |
status | Int | 操作状态取值如下:
|
type | Int | 聊天室事件类型取值如下:0 为创建聊天室、1 加入聊天室、2 退出聊天室、3 销毁聊天室。 |
time | Number | 发生时间。 |
回调代码示例
以下示例假设您在开通服务页面配置的回调接收地址为 http://example.com/chatroom_status_sync.php
。
POST /chatroom_status_sync.php?appKey=someappKey×tamp=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
}
]
响应回调请求
提示
- 只要有 HTTP
200 OK
成功响应,服务端会认为状态已经同步。 - 如果应答超时 5 秒,服务端会再尝试推送 2 次,如果仍然失败,将不再同步此条状态。
- 如短时间内有大面积超时,将暂时停止请求您的服务器,1 分钟后会继续发送回调请求。异常断网情况下的会延迟 5 分钟同步。