我正在尝试使用 Go 创建一个客户端和一个服务器,但由于某种原因,服务器将连接报告为“关闭”。由于代码很简单,我想不出我的代码有什么问题。任何帮助表示赞赏。package mainimport ( log "github.com/golang/glog" "net/http" "golang.org/x/net/websocket" "time" "flag")type server struct { payload chan string}// srv pushes the messages received via ws into srv.payloadfunc (srv *server) serve(ws *websocket.Conn) { go func() { var msg string if err := websocket.Message.Receive(ws, &msg); err != nil { log.Exit(err) } srv.payload <- msg }() return}// This example demonstrates a trivial client/ server.func main() { flag.Parse() srv := server{payload: make(chan string, 10)} http.Handle("/echo", websocket.Handler(srv.serve)) go func() { err := http.ListenAndServe(":12345", nil) if err != nil { log.Errorf("ListenAndServe: " + err.Error()) } }() // give the server some time to start listening time.Sleep(3 *time.Second) //dial and test the response. ws, err := websocket.Dial("ws://localhost:12345/echo", "", "http://localhost/?x=45") if err != nil { log.Exit(err) } ms := "test" if err := websocket.Message.Send(ws, ms); err != nil { log.Exit(err) } msg := <-srv.payload if msg != ms{ log.Errorf("msg %v is not %v", ms) }}错误 t.go:21] read tcp 127.0.0.1:12345->127.0.0.1:43135:
- 1 回答
- 0 关注
- 197 浏览
添加回答
举报
0/150
提交
取消