package api import ( "net/http" "github.com/gorilla/mux" ) // HandleRealtimeWebSocket handles WebSocket upgrade for realtime communication func (s *Server) HandleRealtimeWebSocket(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) sessionID := vars["id"] if sessionID == "" { writeError(w, http.StatusBadRequest, "session_id is required", nil) return } // Get session to validate _, err := s.sessionManager.GetSession(r.Context(), sessionID) if err != nil { writeError(w, http.StatusUnauthorized, "invalid session", err) return } // Upgrade to WebSocket if s.realtimeGateway != nil { if err := s.realtimeGateway.HandleWebSocket(w, r, sessionID); err != nil { writeError(w, http.StatusInternalServerError, "failed to upgrade connection", err) return } return } writeError(w, http.StatusServiceUnavailable, "realtime gateway not available", nil) }