![[Golang系列] GOFLY在线客服系统-gin框架升级http连接为websocket-GO语言实现开源独立部署客服系统...,第1张 [Golang系列] GOFLY在线客服系统-gin框架升级http连接为websocket-GO语言实现开源独立部署客服系统...,第1张](/aiimages/%5BGolang%E7%B3%BB%E5%88%97%5D+GOFLY%E5%9C%A8%E7%BA%BF%E5%AE%A2%E6%9C%8D%E7%B3%BB%E7%BB%9F-gin%E6%A1%86%E6%9E%B6%E5%8D%87%E7%BA%A7http%E8%BF%9E%E6%8E%A5%E4%B8%BAwebsocket-GO%E8%AF%AD%E8%A8%80%E5%AE%9E%E7%8E%B0%E5%BC%80%E6%BA%90%E7%8B%AC%E7%AB%8B%E9%83%A8%E7%BD%B2%E5%AE%A2%E6%9C%8D%E7%B3%BB%E7%BB%9F....png)
gin框架实现websocket服务非常简单,只需要升级一下http请求,就可以实现了
比如下面的控制器部分代码
//包级变量,升级器
var upgrader = websocket.Upgrader{}
func init() {
//初始化
upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
// 解决跨域问题
CheckOrigin: func(r *http.Request) bool {
return true
},
}
}
func VisitorWebsocketServer(c *gin.Context) {
conn, err := upgrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
log.Println("upgrade error:", err)
return
}
for {
//接受消息
var receive []byte
messageType, receive, err := conn.ReadMessage()
if err != nil {
log.Println(err)
return
}
log.Println(string(receive), messageType)
}
}
增加api路由
wsGroup := engine.Group("/ws")
{
wsGroup.GET("/v2/visitor", middleware.Ipblack, wsV2.VisitorWebsocketServer)
}
前端连接访问就可以了
ws://xxxxxxxx/ws/v2/visitor
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)