我正在使用这个ip 192.168.1.55。我需要发送一些数据到192.168.1.137。我正在使用此代码
package main
import (
"fmt"
"net/http"
"os"
"code.google.com/p/go.net/websocket"
)
func Echo(ws *websocket.Conn) {
fmt.Println("Echoing")
for n := 0; n < 10; n++ {
msg := "Hello " + string(n+48)
fmt.Println("Sending to client: " + msg)
err := websocket.Message.Send(ws, msg)
if err != nil {
fmt.Println("Can't send")
break
}
}
}
func main() {
http.Handle("http://192.168.1.137", websocket.Handler(Echo))
http.ListenAndServe(":4242", nil)
}
func checkError(err error) {
if err != nil {
fmt.Println("Fatal error ", err.Error())
os.Exit(1)
}
}
但是我的ip没有连接到我上面提到的其他ip(192.168.1.137)。如何解决这个问题?
答案 0 :(得分:1)
处理的路径是错误的。您必须定义websocket应该连接的路由。
func main() {
http.Handle("http://192.168.1.137", websocket.Handler(Echo))
http.ListenAndServe(":4242", nil)
}
应该是
func main() {
http.Handle("/", websocket.Handler(Echo))
http.ListenAndServe(":4242", nil)
}
您可以使用Websocket.org来测试您的代码。
答案 1 :(得分:0)
他想要联系,而不是倾听。
// you need to make sure this values are correct. and server is listening on "192.168.1.137:4242"
origin := "http://192.168.1.55/"
url := "ws://192.168.1.137:4242"
ws, err := websocket.Dial(url, "", origin)
if err != nil {
log.Fatal(err)
}
for n := 0; n < 10; n++ {
msg := "Hello " + strconv.Itoa(n)
fmt.Println("Sending to client: " + msg)
err := ws.Write([]byte(msg))
if err != nil {
fmt.Println("Can't send")
break
}
}