logo
当前页

登录登出回调


描述

凭借本回调,您可以监听用户如下上下线行为,实现如统计在线用户等业务逻辑:

  • 用户上线(TCP 连接建立)。
  • 用户注销下线或者用户网络断开(TCP 连接断开)。
  • App 心跳超时(App 进程被杀或者崩溃)。

回调说明

  • 请求方法:POST。
    说明

    回调数据格式为 JSON,您需要对其进行 UrlDecode 解码。

  • 请求地址:请在 ZEGO 控制台 上配置回调地址,配置流程请参考控制台文档 ZIM 相关回调配置
  • 传输协议:HTTPS/HTTP,建议使用 HTTPS。

回调参数

参数类型说明
appidStringAPP 的唯一标识。
eventString回调事件,此回调返回值为 user_action。
timestampIntegercallback服务器当前时间 Uinx 时间戳,单位为秒。
nonceString随机数。
signatureString检验串,详情见 检验说明
user_idString用户 ID。
user_nameString用户昵称。
osString操作系统说明,用户上线时同步。包含以下枚举:
  • PC
  • IOS_PHONE
  • ANDROID
  • MAC
  • LINUX
  • WEB
  • MINIPROGRAM(小程序)
  • ANDROID_TV
actionInteger

状态:

  • 0:online(登录),表示用户端 App 成功调用 login 接口连接到 ZIM 服务器。
  • 1:logout(登出),表示用户端 App 成功调用 logout 接口推出登录。
  • 2:offline(离线)。
session_idString一个连接的唯一 ID。如果同一用户在多端同时在线,则会有多个连接,可使用此 ID 进行区分。
login_timeInteger登录时间 Uinx时间戳, 单位为秒。
reloginString重新登录标识。
  • 0:首次登录。
  • 1:重新登录。
logout_timeInteger登出时间 Uinx时间戳, 单位为秒。
logout_reasonString登出原因
offline_timeInteger离线时间 Uinx时间戳, 单位为秒。
说明

建议您将部分参数转换为 Int 进行逻辑处理,相关字段包括 appidnonce

数据示例

  • 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
Copied!

返回响应

返回 HTTP status code 为 2XX (例如 200)表示成功,其他响应都表示失败。

回调重试策略

如果 ZEGO 服务器没有收到响应,或收到的 HTTP status code 不为 2XX(例如 200),都会尝试重试,最多进行 5 次重试。每次重试请求与上一次请求的间隔时间分别为 2s、4s、8s、16s、32s。若第 5 次重试后仍然失败,将不再重试,该回调丢失。

Previous

回调配置说明

Next

呼叫创建