问题描述
"github.com/gorilla/websocket""github.com/gorilla/mux"WebSocket connection to 'ws://localhost:7777/ws' failed: Error during WebSocket handshake: Unexpected response code: 404
问题出现的环境背景及自己尝试过哪些方法
react中websocket相关配置代码不变的情况下,在beego中直接使用
// main()中
http.HandleFunc("/ws",wsHandleConn)
err := http.ListenAndServe("0.0.0.0:7777", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}else{
log.Println("websocket创建成功")
}
//升级请求为websocket,发送数据
func wsHandleConn(w http.ResponseWriter,r *http.Request) {
// 将http协议升级成websocket协议
ws, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Fatal(err)
defer ws.Close()
}
clients[ws] = true
}
可以连接成功
但是如果使用
import (
"encoding/json"
"fmt"
"github.com/gorilla/websocket"
"github.com/gorilla/mux"
"io/ioutil"
"log"
"net/http"
"time"
)
// main()中
Router := mux.NewRouter()
Router.HandleFunc("/ws",wsHandleConn)
Router.HandleFunc("/ws/sayHi",sayHi)
其他地方不做修改,则连接失败
你期待的结果是什么?实际看到的错误信息又是什么?
如何正确使用golang的gorilla/mux进行websocket配置?