gin icon indicating copy to clipboard operation
gin copied to clipboard

How to support WebSocket

Open peterwillcn opened this issue 1 year ago • 1 comments

How to gin + gorilla/websocket support WebSocket

peterwillcn avatar Jun 20 '22 16:06 peterwillcn

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.

yeqown avatar Jun 24 '22 02:06 yeqown