聊天室属性同步(KV)
「聊天室属性同步」是即时通讯服务端的一项服务端回调服务。
开通该回调服务后,应用下聊天室属性(KV)发生变化(设置,删除,全部删除等操作)时,将实时同步到开发者的应用服务器,便于对应用下的聊天室进行业务逻辑处理。
开通服务
使用聊天室属性同步(KV) 功能前,请确认已为当前 App Key 开通相关服务。详见聊天室服务配置。
开通服务时,请配置可正常访问的回调接收地址。开通服务时,请配置可正常访问的回调接收地址。如果您的网络有 IP 访问限制,请务必配置 IP 白名单,否则无法正常接收服务端回调。即时通讯服务端会将应用下的聊天室属性变化(设置,删除,全部删除等操作)同步到指定的回调地址。
回调方法
请求方法: POST
数据格式: application/json
即时通讯服务端会在 POST 请求 URL 中添加签名参数,您可通过签名验证调用者身份和数据有效性,详细参见 服务端回调签名。
正文参数
该回调服务的 HTTP 请求正文数据格式为 application/json
,包含具有以下结构的 JSON 对象:
参数 | 类型 | 说明 |
---|---|---|
chatroomId | String | 聊天室 ID。 |
key | String | 属性的 Key。 |
value | String | 属性的 Value。 |
optType | int | 操作类型:1 设置、2 删除、3 删除全部属性(KV)。 |
userId | String | 操作者的用户 ID。 |
status | int | 本字段暂不可用,请勿使用。 |
timestamp | long | 服务端记录的时间戳。 |
version | long | 属性的版本号(业务进行操作排序用)。 |
同步状态时需要服务提供应答 200,只要有 HTTP 应答码 200 ,服务端会认为状态已经同步。如果应答超时 5 秒,服务端会再尝试推送 2 次,如果仍然失败,将不再同步此条状态。如短时间内有大面积超时,将暂停推送,1 分钟后会继续推送。异常断网情况下的会延迟 5 分钟同步。
回调请求示例
假设您在开通服务页面配置的接收地址:http://example.com/chatroom_kv_sync.php
POST /chatroom_kv_sync.php?appKey=someappKey×tamp=1408710653491&nonce=14314&signature=45beb7cc7307889a8e711219a47b7cf6a5b000e8 HTTP/1.1
Host: example.com
Content-Type: application/json
[
{
"chatroomId":"kvchatroom2",
"optType":1,
"userId":"1DBrZTGCI",
"key":"testKey",
"value":"testValue",
"status":"2",
"timestamp":1645437940739,
"version":1645437940738
},
{
"chatroomId":"kvchatroom3",
"optType":2,
"userId":"testUser",
"key":"testKey1",
"status":"2",
"value":"testValue",
"timestamp":1645437940740,
"version":1645437940740
}
]