converge/pkg/websocketutil/services.go

35 lines
836 B
Go

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)
}