import (
//省略其他,引用了一个第三方库,github有源码,对websokcet的封装
"github.com/gorilla/websocket"
)
const (
serverPort = ":8086"
)
//设置连接参数,upgrader.Upgrade(w, r, nil),使用第三方库websocket获取websocket连接
var upgrader = websocket.Upgrader{
//允许跨域访问
//重载函数CheckOrigin
//函数名:fuc(参数) 返回值
CheckOrigin: func(r *http.Request) bool{
return true;
},
//设置websocket连接参数,成员变量赋值,读写buff缓冲区大小,
ReadBufferSize: 40*1024,
WriteBufferSize: 4*1024,
}
func serveWs(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Println(err)
return
}
//有了conn之后就可以根据业务需求读写数据,
conn.ReadMessage()
conn.WriteMessage(websocket.BinaryMessage,byte data)
conn.WriteMessage(websocket.TextMessage,"string data")
}
func main() {
http.HandleFunc("/ws", serveWs)
//一直阻塞监听端口,等待客户端连接
err := http.ListenAndServe(serverPort, nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
网友评论