code: func (wm *WebsocketManager) WebsocketHandler(w http.ResponseWriter, r *http.Request) {
  	wsConn, err := wm.Upgrade(w, r, nil)
  	if err != nil {
  		// TODO - return http error
  		wm.logger.TraceMsg("Failed to upgrade to websocket connection", structure.ErrorKey, err)
  		return
  	}
  
  	// register connection
  	con := NewWSConnection(wsConn, wm.funcMap, wm.logger, wm.wsConnOptions...)
  	wm.logger.InfoMsg("New websocket connection", "remote_address", con.remoteAddr)
  	err = con.Start() // Blocking
  	if err != nil {
  		wm.logger.TraceMsg("Error starting connection", structure.ErrorKey, err)
  	}
  }
docs: // WebsocketHandler upgrades the request/response (via http.Hijack) and starts the wsConnection.