我正在嘗試使用 gorilla websocket 庫來了解 websockets 如何與 Go 一起工作。但是當我點擊瀏覽器上的刷新按鈕時,我不斷收到此錯誤消息。當我重新加載用于測試 websocket 的網頁時,我在 Go 控制臺上收到以下錯誤消息:2015/09/18 19:04:41 websocket: close 10012015/09/18 19:04:41 http: response.Write on hijacked connection第一個是“離開”的狀態代碼。我假設這是因為當我點擊刷新時它會遠離 websocket 連接,所以這對我來說很有意義。但是后來我收到一條我不明白的錯誤消息。被劫持者。為什么我會得到它,它是什么意思?我在 Windows 機器上的 localhost:8080 上運行我的代碼。我正在使用的代碼:func wsHandler(w http.ResponseWriter, r *http.Request, _ httprouter.Params) error { conn, err := websocket.Upgrade(w, r, nil, 1024, 1024) if err != nil { return err } defer conn.Close() for { _, msg, err := conn.ReadMessage() if err != nil { return err } log.Println(string(msg)) } return nil}客戶端:var conn = new WebSocket("ws://localhost:8080/api/messages/websocket");conn.onclose = function (e) { console.log("onclose fired");};conn.onopen = function (e) { console.log("onopen fired");};conn.onmessage = function (e) { console.log(e.data);}; setTimeout(function () { conn.send("foo!");}, 1500);當我第一次加載頁面時,只foo!輸出到控制臺。總而言之,在加載頁面一次,然后重新加載兩次后,我得到如下輸出:2015/09/18 19:04:39 foo!2015/09/18 19:04:41 websocket: close 10012015/09/18 19:04:41 http: response.Write on hijacked connection2015/09/18 19:04:43 foo!2015/09/18 19:04:44 websocket: close 10012015/09/18 19:04:44 http: response.Write on hijacked connection2015/09/18 19:04:46 foo!這是什么意思?我是不是做錯了什么?
為什么我會收到錯誤消息“http: response.Write on hijacked
慕的地6264312
2021-11-08 16:11:04
