package service import ( "net/http" ws "ky-go-kratos/internal/websocket" "github.com/gorilla/websocket" ) var upgrader = websocket.Upgrader{ CheckOrigin: func(r *http.Request) bool { return true }, } var hub = ws.NewHub() func WebSocketHandler(w http.ResponseWriter, r *http.Request) { roomName := r.URL.Query().Get("room") uid := r.URL.Query().Get("uid") if roomName == "" || uid == "" { http.Error(w, "missing params", http.StatusBadRequest) return } conn, err := upgrader.Upgrade(w, r, nil) if err != nil { return } room := hub.GetRoom(roomName) c := &ws.Connection{ UID: uid, Conn: conn, Room: room, Send: make(chan *ws.WSMessage, 256), } room.Register <- c go c.WritePump() c.ReadPump() }