Files
TrangleAgent/Backend/internal/controller/websocket/websocket.go

66 lines
1.7 KiB
Go
Raw Normal View History

2026-01-18 18:20:40 +08:00
package websocket
//
//import (
// "net/http"
//
// "github.com/gogf/gf/v2/frame/g"
// "github.com/gogf/gf/v2/net/ghttp"
// "github.com/gorilla/websocket"
//)
//
//// WebSocketController WebSocket 控制器
//type WebSocketController struct{}
//
//// New 创建 WebSocket 控制器实例
//func New() *WebSocketController {
// return &WebSocketController{}
//}
//
//// wsUpgrader WebSocket 升级器配置
//var wsUpgrader = websocket.Upgrader{
// // CheckOrigin 允许任何来源(开发环境)
// // 生产环境中应该实现适当的来源检查以确保安全
// CheckOrigin: func(r *http.Request) bool {
// return true
// },
// // Error 处理升级失败的错误
// Error: func(w http.ResponseWriter, r *http.Request, status int, reason error) {
// // 在这里实现错误处理逻辑
// g.Log().Errorf(r.Context(), "WebSocket upgrade error: %v", reason)
// },
//}
//
//// Echo WebSocket Echo 服务器处理器
//// 路径: /ws
//func (c *WebSocketController) Echo(r *ghttp.Request) {
// // 将 HTTP 连接升级为 WebSocket
// ws, err := wsUpgrader.Upgrade(r.Response.Writer, r.Request, nil)
// if err != nil {
// r.Response.Write(err.Error())
// return
// }
// defer ws.Close()
//
// // 获取请求上下文用于日志记录
// var ctx = r.Context()
// logger := g.Log()
//
// // 消息处理循环
// for {
// // 读取传入的 WebSocket 消息
// msgType, msg, err := ws.ReadMessage()
// if err != nil {
// break // 连接关闭或发生错误
// }
// // 记录接收到的消息
// logger.Infof(ctx, "received message: %s", msg)
// // 将消息回显给客户端
// if err = ws.WriteMessage(msgType, msg); err != nil {
// break // 写入消息时出错
// }
// }
// // 记录连接关闭
// logger.Info(ctx, "websocket connection closed")
//}