55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
package websocket
|
||
|
||
// Message WebSocket下发消息结构体
|
||
type Message struct {
|
||
Type string `json:"type"` // 消息类型:message, error, done
|
||
Data interface{} `json:"data"` // 消息数据
|
||
}
|
||
|
||
// MessageData 流式消息数据结构体
|
||
type MessageData struct {
|
||
Delta string `json:"delta"` // 增量消息内容
|
||
}
|
||
|
||
// ErrorData 错误数据结构体
|
||
type ErrorData struct {
|
||
Error string `json:"error"` // 错误信息
|
||
}
|
||
|
||
// DoneData 完成数据结构体
|
||
type DoneData struct {
|
||
Message string `json:"message"` // 完整消息内容
|
||
SessionId string `json:"sessionId"` // 会话ID
|
||
}
|
||
|
||
// NewMessageEvent 创建消息事件
|
||
func NewMessageEvent(delta string) Message {
|
||
return Message{
|
||
Type: "message",
|
||
Data: MessageData{
|
||
Delta: delta,
|
||
},
|
||
}
|
||
}
|
||
|
||
// NewErrorEvent 创建错误事件
|
||
func NewErrorEvent(errorMsg string) Message {
|
||
return Message{
|
||
Type: "error",
|
||
Data: ErrorData{
|
||
Error: errorMsg,
|
||
},
|
||
}
|
||
}
|
||
|
||
// NewDoneEvent 创建完成事件
|
||
func NewDoneEvent(message, sessionId string) Message {
|
||
return Message{
|
||
Type: "done",
|
||
Data: DoneData{
|
||
Message: message,
|
||
SessionId: sessionId,
|
||
},
|
||
}
|
||
}
|