Можем ли мы вызвать http.Error () перед обновлением соединения webSocket? - PullRequest
0 голосов
/ 02 марта 2020

Я использую 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()
    ...
}
...