1
This commit is contained in:
58
model/dto/websocket_dto.go
Normal file
58
model/dto/websocket_dto.go
Normal file
@@ -0,0 +1,58 @@
|
||||
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 时返回)
|
||||
}
|
||||
Reference in New Issue
Block a user