我正在运行一个Gorilla/websocket用于实时国际象棋/聊天应用程序的 Go 网络服务器。据我所知,我在 Go方法和 Javascript函数两个位置定义了地址和端口。这在同一主机上的跨浏览器中效果很好,但是在尝试通过我的内部网络扩展功能时会变得很棘手。所以我使用,例如:http.ListenAndServer()new Websocket();
走:
PORT := "0.0.0.0:8080"
// ...
http.HandleFunc("/ws", func(w http.ResponseWriter, r *http.Request) {
h.serveWs(hub, w, r) // h is a chessboard Handler wrapper
})
//...
http.ListenAndServe(PORT, nil)
Javascript:
conn = new WebSocket("ws://0.0.0.0:8080/ws");
为了让这个在我尝试使用的网络上的不同设备上工作,而不是0.0.0.0地址,localhost或者我hostname和我的主机的内部 ip (eg) 10.232.44.20;对于后者,内部 ip 硬编码,它可以工作,但其他尝试没有。我认为 using0.0.0.0会接受来自网络内的所有连接,我从这个答案中收集到这些连接: 0.0.0.0、127.0.0.1 和 localhost 之间有什么区别?
我应该如何编程才能访问内部网络中的服务器,而无需硬编码我的内部 IP 地址ListenAndServe?new Websocket我应该从 Js 和 Go 以编程方式访问该号码吗?最后,我希望能够在各种网络上运行此服务器,无需配置,并让它正常工作。我错过了什么?
翻过高山走不出你
相关分类