diff --git a/callback/state.go b/callback/state.go new file mode 100644 index 0000000..7c7f14e --- /dev/null +++ b/callback/state.go @@ -0,0 +1,21 @@ +package callback + +// StateChangeData 状态变化回调数据 +// https://cloud.tencent.com/document/product/269/2570 +type StateChangeData struct { + CallbackCommand string `json:"CallbackCommand"` // 回调命令 + EventTime int64 `json:"EventTime"` // 触发本次回调的时间戳,单位为毫秒 + Info StateChangeDataInfo `json:"Info"` // 用户上下线的信息 + KickedDevice []StateChangeDataKickedDevice `json:"KickedDevice"` // 如果本次状态变更为 Login(Register),而且有其他设备被踢下线,才会有此字段。此字段表示其他被踢下线的设备的信息 +} + +// StateChangeDataInfo 状态变化回调数据信息 +type StateChangeDataInfo struct { + Action string `json:"Action"` // 用户上线或者下线的动作,Login 表示上线(TCP 建立),Logout 表示下线(TCP 断开),Disconnect 表示网络断开(TCP 断开) + ToAccount string `json:"To_Account"` // 用户 UserID + Reason string `json:"Reason"` // 用户上下线触发的原因 +} + +type StateChangeDataKickedDevice struct { + Platform string `json:"Platform"` // 被踢下线的设备的平台类型,可能的取值有"iOS", "Android", "Web", "Windows", "iPad", "Mac", "Linux" +}