我开始使用websockets + go了,我觉得我误解了Go的websockets中的一些基本的东西。在Go服务websocket
我想简单地听一个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
if区块中断是什么意思? –
@ElgsQianChen中断最有可能是我首先将接收和发送放在for-loop中的残余,以防止它在第一条消息之后断开连接。我已将它改为“return”。 – ANisus
啊,我明白了。感谢@ANisus的解释。 –