Golang websocket 实现
1.之前使用php的swoole 实现websocket,今天就来用golang基于beego框架实现下,添加二行路由:
beego.Router("/", &controllers.MainController{}) 是网站首页,监测客服端连接情况
beego.Router("/ws", &controllers.MyWebSocketController{}) 供客服端连接
2.先实现服务端代码,直接贴代码如下:
package controllers
import (
"fmt"
"github.com/astaxie/beego"
"github.com/gorilla/websocket"
"h5_api/models"
"log"
"net/http"
)
type MyWebSocketController struct {
beego.Controller
}
var upgrader = websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool {
return true
},
}
var (
clients = make(map[*websocket.Conn]bool)
broadcast = make(chan models.Message)
)
func init() {
go handleMessages()
}
func (c *MyWebSocketController) Get() {
conn, err := u