How to gin + gorilla/websocket support WebSocket

Comment From: yeqown

gorilla/websocket has provided sample codes like this:

var upgrader = websocket.Upgrader{
    ReadBufferSize:  1024,
    WriteBufferSize: 1024,
}

func handler(w http.ResponseWriter, r *http.Request) {
    conn, err := upgrader.Upgrade(w, r, nil)
    if err != nil {
        log.Println(err)
        return
    }
    // ... Use conn to send and receive messages.
}

So, in my opinion, you just wonder how to get http.Request and http.ResponseWriter from gin.Context? That's simple:

func handler(c *gin.Context) {
    conn, err := upgrader.Upgrade(c.Writer, c.Request, nil)
    if err != nil {
        log.Println(err)
        return
    }
    // ... Use conn to send and receive messages.
}

now all others are same to official document.