第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

websocket:客戶端未使用 websocket 協(xié)議:“連接”標(biāo)頭中未找到“升級”令牌

websocket:客戶端未使用 websocket 協(xié)議:“連接”標(biāo)頭中未找到“升級”令牌

Go
GCT1015 2023-03-15 15:43:29
我正在嘗試與用 Go 和 JavaScript 前端編寫的服務(wù)器建立 websocket 連接。我在一個(gè)目錄中有以下文件:main.go 索引.html**這是我的 Go 代碼main.go:**package mainimport (    "fmt"    "log"    "net/http"    "github.com/gorilla/websocket")var upgrader = websocket.Upgrader{    ReadBufferSize:  1024,    WriteBufferSize: 1024,}func homePage(w http.ResponseWriter, r *http.Request) {    http.ServeFile(w, r, "./index.html")    conn, err := upgrader.Upgrade(w, r, nil)    if err != nil {        log.Println("Error in handler:", err)        return    }    log.Println("Client connected.")    for {        messageType, p, err := conn.ReadMessage()        if err != nil {            log.Println("Fehler in ReadMessage: ", err)            return        }        log.Println(string(p))        //echo message to client        if err := conn.WriteMessage(messageType, p); err != nil {            log.Println(err)            return        }    }}func setupRoutes() {    http.HandleFunc("/ws", homePage)}func main() {    fmt.Println("Server gestartet")    setupRoutes()    log.Fatal(http.ListenAndServe(":9100", nil))}這是 index.html 中的 HTML 和 JavaScript:<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <title>Some unimportant html </title></head><body>        <script>        let socket = new WebSocket("ws://localhost:9100/ws");        console.log("Websocket started.");        socket.onOpen = () => {            console.log("Client started.");        }        socket.onclose = (event) => {            console.log("Socket closed: ", event);        }        socket.onError = (error) => {            console.log("Socket Error: ", error);        }        socket.onMessage = (msg) => {            console.log(msg);        }    </script></body></html>
查看完整描述

1 回答

?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

我得以修復(fù)它。問題是我需要一個(gè)端點(diǎn)用于索引文件,另一個(gè)端點(diǎn)用于 websocket。所以我將相關(guān)部分更改為:


func websocketHandler(w http.ResponseWriter, r *http.Request) {

    conn, err := upgrader.Upgrade(w, r, nil) //conn is a websocket connection (aus http wird websocket protokoll)

    if err != nil {

        log.Println("Error in handler:", err)

        return

    }

    log.Println("Client connected.")


    

    for {

        messageType, p, err := conn.ReadMessage()

        if err != nil {

            log.Println("Fehler in ReadMessage: ", err)

            return

        }


        log.Println(string(p))


        //echo message to client

        if err := conn.WriteMessage(messageType, p); err != nil {

            log.Println(err)

            return

        }

    }

}


func homePage(w http.ResponseWriter, r *http.Request) {

    http.ServeFile(w, r, "./index.html")

}


func setupRoutes() {

    http.HandleFunc("/", homePage)

    http.HandleFunc("/ws", websocketHandler)


}


查看完整回答
反對 回復(fù) 2023-03-15
  • 1 回答
  • 0 關(guān)注
  • 137 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號