更新时间:2022-02-28
开发者可以通过该回调实现实时监控用户在线、离线状态,以及状态变更原因(登入,登出,用户账号被动退出);如应用中需要实时展示用户在线、离线状态时,可通过此服务来实现。
每个用户的状态类型有以下 2 种:
状态变更原因包含以下3种:
直接在发送后回调添加规则页配置,具体见 环信即时通讯云控制台。
同步在线状态时需要接收服务提供应答,只要有 HTTP 应答码 200 ,环信即时通讯 IM 服务器认为状态已经同步;如果应答超时 60 秒,会尝试第 2 次推送,如果仍然失败,环信即时通讯 IM 服务器将不再同步此条状态,同时记录 1 次推送失败。若短时间内有大面积超时,将暂停推送。
该回调类型为用户在 环信即时通讯 IM 服务器在离线(online/offline)状态变更事件,其中包含变更原因登入,登出,踢用户。 对应 login,logout,replaced。
参数 | 参数类型 | 描述 |
---|---|---|
callId | String | callId 为 {appkey}_{uuid} ,其中 uuid 为 随机生成,作为每条回调的唯一标识。 |
security | String | 签名。格式如下: MD5(callId+密钥+timestamp)。 |
host | String | 环信即时通讯 IM 服务器名称,无需关注。 |
timestamp | Long | 环信即时通讯 IM 接收到此消息的 Unix 时间戳,单位为 ms。 |
appkey | String | 应用的唯一标识。 |
user | String | 环信即时通讯 IM 用户名和设备 resource 。 |
reason | String | 用户状态变更原因。- login :登入。 - logout :登出。 - replaced :被踢。 - res_removed :新增,与 replaced 相似。多端多设备数量不足时,比如多端多设备开启数量为 3,第 4 台设备登陆时,会将第 1 台踢出。然后在 resource 返回被踢出的设备 ID。 |
os | String | 设备类型(Android/iOS/Webim)。 |
ip | String | IP 地址和端口号。 |
version | String | 客户端 SDK 版本号。 |
status | String | 用户当前状态。- online :在线。 - offline :离线。 |
{
"callId": "easemob-demo#test_0770a64f-cf01-4c41-8786-df3b48b20e7e",
"security": "2ca02c394bef9e7abc83958bcc3156d3",
"host": "msync@hsb",
"timestamp": 1600060847294,
"appkey": "easemob-demo#test",
"user": "easemob-demo#test_hxtest@easemob.com/android_b069b852-79a3-3c9e-9d08-ee5176b95df5",
"reason": "login",
"os": "android",
"ip": "211.157.146.18:48098",
"version": "3.7.1",
"status": "online"
}