go - 客户端无法开始与服务器握手并返回 nil(未找到“升级”令牌)
问题描述
我正在尝试从 Go 中的 Gorilla Websocket 包中实现 websocket。我的客户像这样开始打开连接:
**index.html**
var websocket = new WebSocket('ws://localhost:8080/stats');
websocket.onopen = function(event) {
console.log("Cnnected");
};
websocket.onerror = function(error) {
console.log(error);
};
... some other websocket methods...
在我的服务器端,我只是尝试在连接标头中添加升级令牌,如下所示:
**websocket.go**
var upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
CheckOrigin: func(r *http.Request) bool { return true },
}
func Upgrade(w http.ResponseWriter, r *http.Request) (*websocket.Conn, error) {
// get websocket connection here
ws, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Println(err)
return ws, err
}
// returns our new websocket connection
return ws, nil
}
但是,它返回 nil 并且错误消息显示在屏幕上,如下所示:
错误请求 websocket:客户端未使用 websocket 协议:在“连接”标头中找不到“升级”令牌
加载资源失败:服务器响应状态为 400(错误请求)
我不确定为什么功能升级无法获得连接并返回 ws。