亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我會收到錯誤消息“http: response.Write on hijacked

為什么我會收到錯誤消息“http: response.Write on hijacked

Go
慕的地6264312 2021-11-08 16:11:04
我正在嘗試使用 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!這是什么意思?我是不是做錯了什么?
查看完整描述

1 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

所述websocket.Upgrade函數劫持從http.ResponseWriter所述底層網絡連接。

從 writer 劫持連接后調用 write 時,ResponseWriter.Write方法會記錄此消息。

在 websocket 處理程序返回后,應用程序使用的路由器或中間件似乎正在寫入連接。


查看完整回答
反對 回復 2021-11-08
  • 1 回答
  • 0 關注
  • 1005 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號