====== 用户在线状态回调 ====== ''本文档已不再维护,新版文档见:[[ccim:rest:presence|用户在线状态管理 RESTful API]]。'' ------ ===== 功能说明 ===== 开发者可以通过该回调实现实时监控用户在线、离线状态,以及状态变更原因(登入,登出,踢用户);如应用中需要实时展示用户在线、离线状态时,可通过此服务来实现。 每个用户的状态类型有以下2种: * 在线状态(Online):表示App用户已连接到环信服务器; * 离线状态(Offline):表示App用户已断开与环信服务器的连接; 状态变更原因包含以下3种: * 登入(login):App用户与环信服务器建立连接; * 登出( logout):App 用户退出登录导致与环信服务器的连接断开; * 踢用户( replaced):App 用户当前登录设备数已达最大限时数时,再登录1个设备,则其中一端设备会被踢出,导致与环信服务器的连接断开; ==== 注意事项 ==== * 该服务为增值服务,需要开通后才能使用; * 开通后用户状态有变更(在线、离线)时,环信服务器会实时将状态同步到开发者设置的应用服务器地址,开发者接收到状态后自行实现业务处理。 * 用户离线状态在个别情况下,比如进入隧道等特殊网络情况下,依赖心跳超时,最长会有5分钟延时。 ==== 应答要求 ==== 同步在线状态时需要接收服务提供应答,只要有 HTTP 应答码 200 ,环信服务器会认为状态已经同步;如果应答超时60 秒,会再尝试推送第 2 次,如果仍然失败,环信服务器将不再同步此条状态,同时会记录1次推送失败。如短时间内有大面积超时,将暂停推送。 ===== 参数说明 ===== 该回调类型为用户在环信服务器在离线(online/offline)状态变更事件,其中包含变更原因登入,登出,踢用户。 对应login, logout, replaced。 ^参数^参数类型^说明^ |user|String|环信用户名和设备resource| |reason|String|用户状态变更原因(login/logout/replaced)| |os|String|设备类型(android/ios/webim)| |ip|String|IP地址和端口号| |version|String|sdk 版本号| |status|String|当前状态(online/offline)| ===== 请求示例 ===== > 注意:callId为{appkey}_{uuid} 其中uuid为随机生成,仅供双向定位使用,无实际意义。 例: { "callId": "easemob-demo#test_0770a64f-cf01-4c41-8786-df3b48b20e7e", "security": "2ca02c394bef9e7abc83958bcc3156d3", "host": "msync@hsb-didi-guangzhou-msync", "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" }