文档中心
IM 即时通讯
文档中心
体验 App
SDK 中心
API 中心
常见问题
代码市场
进入控制台
立即注册
登录
中文站 English
  • 文档中心
  • 即时通讯
  • 服务端 API
  • 回调说明
  • 登录登出回调

登录登出回调

更新时间:2024-07-24 10:53

描述

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

  • 用户上线(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
操作系统说明,用户上线时同步。包含以下枚举:
  • PC
  • IOS_PHONE
  • ANDROID
  • MAC
  • LINUX
  • WEB
  • MINIPROGRAM(小程序)
  • ANDROID_TV
action
Integer
状态:
  • 0:online(登录),表示用户端 App 成功调用 login 接口连接到 ZIM 服务器。
  • 1:logout(登出),表示用户端 App 成功调用 logout 接口推出登录。
  • 2:offline(离线)。
session_id
String
一个连接的唯一 ID。如果同一用户在多端同时在线,则会有多个连接,可使用此 ID 进行区分。
login_time
Integer
登录时间 Uinx时间戳, 单位为秒。
relogin
String
重新登录标识。
  • 0:首次登录。
  • 1:重新登录。
logout_time
Integer
登出时间 Uinx时间戳, 单位为秒。
logout_reason
String
登出原因
offline_time
Integer
离线时间 Uinx时间戳, 单位为秒。

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

数据示例

  • POST/JSON
{
    "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"
}

返回响应

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

回调重试策略

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

本篇目录
  • 免费试用
  • 提交工单
    咨询集成、功能及报价等问题
    电话咨询
    400 1006 604
    咨询客服
    微信扫码,24h在线

    联系我们

  • 文档反馈