mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-02-03 02:54:41 +08:00
107 lines
4.2 KiB
Go
107 lines
4.2 KiB
Go
// Package monitor
|
|
// @Link https://github.com/bufanyun/hotgo
|
|
// @Copyright Copyright (c) 2023 HotGo CLI
|
|
// @Author Ms <133814250@qq.com>
|
|
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
|
|
package monitor
|
|
|
|
import (
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/os/gtime"
|
|
"hotgo/internal/library/network/tcp"
|
|
"hotgo/internal/model/input/form"
|
|
)
|
|
|
|
// UserOfflineReq 下线用户
|
|
type UserOfflineReq struct {
|
|
g.Meta `path:"/monitor/userOffline" method:"post" tags:"在线用户" summary:"下线用户"`
|
|
Id string `json:"id" v:"required#SID不能为空" description:"SID"`
|
|
}
|
|
|
|
type UserOfflineRes struct{}
|
|
|
|
// UserOnlineListReq 获取在线用户列表
|
|
type UserOnlineListReq struct {
|
|
g.Meta `path:"/monitor/userOnlineList" method:"get" tags:"在线用户" summary:"获取在线用户列表"`
|
|
form.PageReq
|
|
UserId int64 `json:"userId" description:"用户ID"`
|
|
Username string `json:"username" description:"用户名"`
|
|
IP string `json:"ip" description:"登录IP"`
|
|
FirstTime []*gtime.Time `json:"firstTime" description:"登录时间"`
|
|
}
|
|
|
|
type UserOnlineListRes struct {
|
|
List []*UserOnlineModel `json:"list" description:"数据列表"`
|
|
form.PageRes
|
|
}
|
|
|
|
type UserOnlineModel struct {
|
|
ID string `json:"id"` // 连接唯一标识
|
|
IP string `json:"ip"` // 客户端IP
|
|
Os string `json:"os"` // 客户端系统名称
|
|
Browser string `json:"browser"` // 浏览器
|
|
FirstTime int64 `json:"firstTime"` // 首次连接时间
|
|
HeartbeatTime uint64 `json:"heartbeatTime"` // 用户上次心跳时间
|
|
App string `json:"app"` // 应用名称
|
|
UserId int64 `json:"userId"` // 用户ID
|
|
Username string `json:"username"` // 用户名
|
|
Avatar string `json:"avatar"` // 头像
|
|
}
|
|
|
|
// NetOnlineListReq 获取在线服务列表
|
|
type NetOnlineListReq struct {
|
|
g.Meta `path:"/monitor/netOnlineList" method:"get" tags:"在线服务" summary:"获取在线服务列表"`
|
|
form.PageReq
|
|
Name string `json:"name" description:"应用名称"`
|
|
Group string `json:"group" description:"分组"`
|
|
AppId string `json:"appId" description:"APPID"`
|
|
Addr string `json:"addr" description:"登录地址"`
|
|
FirstTime []*gtime.Time `json:"firstTime" description:"登录时间"`
|
|
}
|
|
|
|
type NetOnlineListRes struct {
|
|
List []*NetOnlineModel `json:"list" description:"数据列表"`
|
|
form.PageRes
|
|
}
|
|
|
|
type NetOnlineModel struct {
|
|
*tcp.AuthMeta
|
|
Id int64 `json:"id" description:"连接ID"`
|
|
IsAuth bool `json:"isAuth" description:"是否认证"`
|
|
Addr string `json:"addr" description:"登录地址"`
|
|
Port string `json:"port" description:"连接端口"`
|
|
FirstTime int64 `json:"firstTime" description:"首次连接时间"`
|
|
HeartbeatTime int64 `json:"heartbeatTime" description:"上次心跳时间"`
|
|
LicenseId int64 `json:"licenseId" description:"许可ID"`
|
|
LicenseName string `json:"licenseName" description:"许可名称"`
|
|
LoginTimes int64 `json:"loginTimes" description:"许可累计登录次数"`
|
|
Online int `json:"online" description:"许可在线数量"`
|
|
OnlineLimit int `json:"onlineLimit" description:"许可在线数量限制"`
|
|
Desc string `json:"desc" description:"许可说明"`
|
|
Proto string `json:"proto" description:"网络协议"`
|
|
}
|
|
|
|
// NetOptionReq 获取服务选项
|
|
type NetOptionReq struct {
|
|
g.Meta `path:"/monitor/netOption" method:"get" tags:"在线服务" summary:"获取服务选项"`
|
|
}
|
|
|
|
type NetOptionRes struct {
|
|
Routes []*RouteSelect `json:"routes" dc:"路由选项"`
|
|
}
|
|
|
|
type RouteSelect struct {
|
|
Value interface{} `json:"value"`
|
|
Label string `json:"label"`
|
|
Disabled bool `json:"disabled"`
|
|
IsRPC bool `json:"isRPC"`
|
|
}
|
|
|
|
// NetOfflineReq 下线服务
|
|
type NetOfflineReq struct {
|
|
g.Meta `path:"/monitor/netOffline" method:"post" tags:"在线服务" summary:"下线服务"`
|
|
Id int64 `json:"id" v:"required#连接ID不能为空" description:"连接ID"`
|
|
}
|
|
|
|
type NetOfflineRes struct{}
|