即时通讯
  • iOS : Objective-C
  • Android
  • macOS
  • Windows
  • Web
  • 小程序
  • Flutter
  • Unity3D
  • uni-app
  • React Native
  • 产品简介
  • 下载
  • 快速开始
    • 跑通示例源码
    • 实现基本消息收发
  • 用户相关
  • 房间相关
  • 群组相关
  • 消息相关
  • 呼叫邀请
  • 会话管理
  • 缓存管理
  • 离线推送
  • 语音组件
  • 客户端 API
  • 服务端 API
  • 迁移方案
  • SDK 错误码
  • 常见问题
  • 文档中心
  • 即时通讯
  • 服务端 API
  • 第三方回调
  • 登录登出回调

登录登出回调

更新时间:2023-11-20 18:43

描述

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

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

回调说明

  • 请求方法:支持 POST/JSON。

    回调数据需要 UrlDecode 解码。

  • 请求地址:请联系 ZEGO 技术支持配置回调地址。
  • 传输协议: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 进行逻辑处理,相关字段包括 appidnonce

数据示例

  • 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 服务器没有收到响应,会尝试重试,最多进行 5 次重试。每次重试请求与上一次请求的间隔时间分别为 2s、4s、8s、16s、32s。若第 5 次重试后仍然失败,将不再重试,该回调丢失。

本篇目录