因此,我对此示例进行了一些更改,以使其与gin-gonic一起使用 https://github.com/utiq/go-in-5-minutes/tree/master/episode4
许多客户之间的websocket握手是成功的。问题是当客户端发送消息时,消息不会传播到其他客户端。
答案 0 :(得分:1)
我查看了episode4
hub
。
我的观察如下:
hub
个实例。 episode4
实例用于跟踪连接等,以便您在每次请求时都丢失它。现在,让我们将episode4
付诸行动。请做以下更改(一如既往地改进它)。我已经使用以下更改测试了您的/ws
,它运行正常。
让server.go
处理程序适用于h := newHub()
wsh := wsHandler{h: h}
r.GET("/ws", func(c *gin.Context) {
wsh.ServeHTTP(c.Writer, c.Request)
})
:
connection.go
删除func stream(c *gin.Context) {
h := newHub()
wsHandler{h: h}.ServeHTTP(c.Writer, c.Request)
}
上的流处理程序:
server.go
在r.SetHTMLTemplate(template.Must(template.ParseFiles("index.html")))
r.GET("/", func(c *gin.Context) {
c.HTML(200, "index.html", nil)
})
上添加索引HTML处理程序:(添加它以测试我最后的第4集)
$http.post('/api/contact',$httpParamSerializer(text)).then(function (response) {
alert("success");
console.log(response.data);
console.log(response.status);
console.log(response.headers);
console.log(response.config);
},function (error) {
alert("error");
console.log(error.data);
console.log(error.status);
console.log(error.headers);
console.log(config);
});