package websocket import ( "log" "net/http" "github.com/gorilla/websocket" ) var upgrader = websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 4096, CheckOrigin: func(r *http.Request) bool { return true }, } func Handler(hub *Hub) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { conn, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Printf("[ws] upgrade: %v", err) return } hub.Register(conn) defer func() { hub.Unregister(conn) conn.Close() }() for { if _, _, err := conn.ReadMessage(); err != nil { break } } } }