【发布时间】:2013-11-11 13:34:51
【问题描述】:
我开始使用 websockets + go 并且我认为我误解了 Go 中 websockets 的一些非常基本的东西。
我想简单地监听一个 websocket 连接并进行相应的处理。但是,我在 Go 中看到的所有使用 websocket 的示例都在为网页提供服务,然后连接到 websocket,这是一个要求吗?
以下是我设置的基本回显服务器:
package main
import (
"fmt"
"code.google.com/p/go.net/websocket"
"net/http"
)
func webHandler(ws *websocket.Conn) {
var s string
fmt.Fscan(ws, &s)
fmt.Println("Received: ", s)
}
func main() {
fmt.Println("Starting websock server: ")
http.Handle("/echo", websocket.Handler(webHandler))
err := http.ListenAndServe(":8080", nil)
if err != nil {
panic("ListenAndServe: " + err.Error())
}
}
这是用于连接的javascript:
ws = new WebSocket("ws://localhost:8080/echo");
ws.onmessage = function(e) {
console.log("websock: " + e.data);
};
但这会导致: WebSocket 连接到 'ws://localhost:8080/echo' 失败:意外响应代码:403
【问题讨论】: