美文网首页
websocket服务端

websocket服务端

作者: 柯蓝_e007 | 来源:发表于2019-05-07 09:45 被阅读0次
    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)
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:websocket服务端

          本文链接:https://www.haomeiwen.com/subject/nrvsoqtx.html