登录登出回调
描述
凭借本回调,您可以监听用户如下上下线行为,实现如统计在线用户等业务逻辑:
- 用户上线(TCP 连接建立)。
- 用户注销下线或者用户网络断开(TCP 连接断开)。
- App 心跳超时(App 进程被杀或者崩溃)。
回调说明
- 请求方法:POST。
说明
回调数据格式为 JSON,您需要对其进行 UrlDecode 解码。
- 请求地址:请在 ZEGO 控制台 上配置回调地址,配置流程请参考控制台文档 ZIM 相关回调配置。
- 传输协议:HTTPS/HTTP,建议使用 HTTPS。
回调参数
参数 | 类型 | 说明 |
---|---|---|
appid | String | APP 的唯一标识。 |
event | String | 回调事件,此回调返回值为 user_action。 |
timestamp | Integer | callback服务器当前时间 Uinx 时间戳,单位为秒。 |
nonce | String | 随机数。 |
signature | String | 检验串,详情见 检验说明 。 |
user_id | String | 用户 ID。 |
user_name | String | 用户昵称。 |
os | String | 操作系统说明,用户上线时同步。包含以下枚举:
|
action | Integer | 状态:
|
session_id | String | 一个连接的唯一 ID。如果同一用户在多端同时在线,则会有多个连接,可使用此 ID 进行区分。 |
login_time | Integer | 登录时间 Uinx时间戳, 单位为秒。 |
relogin | String | 重新登录标识。
|
logout_time | Integer | 登出时间 Uinx时间戳, 单位为秒。 |
logout_reason | String | 登出原因 |
offline_time | Integer | 离线时间 Uinx时间戳, 单位为秒。 |
说明
建议您将部分参数转换为 Int 进行逻辑处理,相关字段包括 appid
和 nonce
。
数据示例
- POST/JSON
Untitled
{
"appid": "1",
"event": "user_action",
"timestamp": 1679553625,
"nonce": "350176",
"signature": "signature",
"user_id": "123456",
"user_name": "user_name",
"os": "PC ",
"action": 1,
"session_id": "930821637828251648",
"login_time": 1679553625,
"relogin": "1",
"logout_time": 1679553625,
"logout_reason": "logout_reason"
}
1
返回响应
返回 HTTP status code 为 2XX (例如 200)表示成功,其他响应都表示失败。
回调重试策略
如果 ZEGO 服务器没有收到响应,或收到的 HTTP status code 不为 2XX(例如 200),都会尝试重试,最多进行 5 次重试。每次重试请求与上一次请求的间隔时间分别为 2s、4s、8s、16s、32s。若第 5 次重试后仍然失败,将不再重试,该回调丢失。