```go func read(ctx context.Context, c *websocket.Conn) ([]byte, error) { ctx, cancel := context.WithTimeout(ctx, time.Minute*30) defer cancel() _, r, err := c.Reader(ctx) if err != nil { return nil, err } // One minute max to read the received message. time.AfterFunc(time.Minute, cancel) return ioutil.ReadAll(r) } ``` That code should be good in an example under Reader. Related #86