package libs import ( "log" "net/http" "github.com/gorilla/websocket" ) type WS struct { } var upgrader = websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, CheckOrigin: func(r *http.Request) bool { return true // 生产环境应校验来源域名 }, } func wsHandler(w http.ResponseWriter, r *http.Request) { conn, err := upgrader.Upgrade(w, r, nil) // 升级HTTP为WebSocket if err != nil { log.Println("升级失败:", err) return } defer conn.Close() for { messageType, p, err := conn.ReadMessage() // 接收消息 if err != nil { log.Println("读取失败:", err) break } log.Printf("收到: %s", p) // 处理消息(示例:原样返回) if err := conn.WriteMessage(messageType, p); err != nil { log.Println("写入失败:", err) break } } }