package websocketutil import ( "cidebug/pkg/iowrappers" "github.com/gorilla/websocket" "log" "net/http" ) var upgrader = websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, } func handleWebSocket(w http.ResponseWriter, r *http.Request, handler func(w http.ResponseWriter, r *http.Request, websockerConnection iowrappers.ReadWriteAddrCloser)) { conn, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Println("Error upgrading to WebSocket:", err) return } wsConn := iowrappers.NewWebSocketConn(conn) defer wsConn.Close() handler(w, r, wsConn) } type WebSocketService struct { Handler func(w http.ResponseWriter, r *http.Request, conn iowrappers.ReadWriteAddrCloser) } func (endpoint *WebSocketService) Handle(w http.ResponseWriter, r *http.Request) { handleWebSocket(w, r, endpoint.Handler) }