Я использую Gorilla WebSockets.
Я передаю некоторые параметры в URL-адресе HandlerFunc
, и мне нужно проверить, что они действительны.
Если это так, я обновляю соединение до webSocket и использую его.
Если это не так, я хотел бы позвонить http.Error
, чтобы сообщить об ошибке пользователю.
Это правильный способ сделать это?
Вот пример кода:
var upgrader = websocket.Upgrader{} // use default options
func myHandler(w http.ResponseWriter, r *http.Request) {
keys, ok := r.URL.Query()["key"]
if !ok {
http.Error(w, "missing key parameter", http.StatusNotFound)
return
}
ws, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Print("upgrade:", err)
return
}
defer ws.Close()
...
}