59 lines
2.3 KiB
Go
59 lines
2.3 KiB
Go
|
|
package dto
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"gitea.com/red-future/common/beans"
|
|||
|
|
"github.com/gogf/gf/v2/frame/g"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// WebSocketConnectReq WebSocket 连接请求
|
|||
|
|
type WebSocketConnectReq struct {
|
|||
|
|
g.Meta `path:"/connect" method:"get" tags:"WebSocket" summary:"WebSocket连接" dc:"建立WebSocket连接,用于实时消息推送"`
|
|||
|
|
UserId string `p:"user_id" v:"required#用户ID不能为空" dc:"用户ID"`
|
|||
|
|
Platform string `p:"platform" d:"xiaohongshu" dc:"平台(xiaohongshu/douyin/kuaishou)"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type WebSocketConnectRes = beans.ResponseEmpty
|
|||
|
|
|
|||
|
|
// WebSocketSendReq 发送消息请求
|
|||
|
|
type WebSocketSendReq struct {
|
|||
|
|
g.Meta `path:"/send" method:"post" tags:"WebSocket" summary:"发送消息" dc:"发送消息到Redis Stream,message服务会消费并处理"`
|
|||
|
|
UserId string `json:"userId" v:"required#用户ID不能为空" dc:"用户ID"`
|
|||
|
|
Content string `json:"content" v:"required#消息内容不能为空" dc:"消息内容"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type WebSocketSendRes struct {
|
|||
|
|
MessageId string `json:"messageId" dc:"消息ID"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// WebSocketBroadcastReq 广播消息请求
|
|||
|
|
type WebSocketBroadcastReq struct {
|
|||
|
|
g.Meta `path:"/broadcast" method:"post" tags:"WebSocket" summary:"广播消息" dc:"向所有WebSocket连接广播消息(测试用)"`
|
|||
|
|
Content string `json:"content" v:"required#消息内容不能为空" dc:"消息内容"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type WebSocketBroadcastRes = beans.ResponseEmpty
|
|||
|
|
|
|||
|
|
// WebSocketOnlineReq 获取在线用户请求
|
|||
|
|
type WebSocketOnlineReq struct {
|
|||
|
|
g.Meta `path:"/online" method:"get" tags:"WebSocket" summary:"获取在线用户" dc:"获取当前所有WebSocket在线用户"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type WebSocketOnlineRes struct {
|
|||
|
|
Count int `json:"count" dc:"在线用户数"`
|
|||
|
|
Users []WebSocketOnlineUserRes `json:"users" dc:"在线用户列表"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
type WebSocketOnlineUserRes struct {
|
|||
|
|
UserId string `json:"userId" dc:"用户ID"`
|
|||
|
|
Platform string `json:"platform" dc:"平台"`
|
|||
|
|
CreatedAt int64 `json:"createdAt" dc:"连接时间戳"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// WebSocketPushMsg WebSocket 推送消息结构
|
|||
|
|
type WebSocketPushMsg struct {
|
|||
|
|
Type string `json:"type"` // 消息类型: ack, error, broadcast, answer
|
|||
|
|
MessageId string `json:"message_id,omitempty"` // 消息ID(ack 时返回)
|
|||
|
|
Message string `json:"message,omitempty"` // 提示消息
|
|||
|
|
Content string `json:"content,omitempty"` // 内容(broadcast/answer 时返回)
|
|||
|
|
}
|