From 559c169714ca4aad8002440b4cce38fe1d2affdd Mon Sep 17 00:00:00 2001 From: Anmol Sethi <hi@nhooyr.io> Date: Sat, 22 Jun 2019 23:44:29 -0400 Subject: [PATCH] Add CloseRead Closes #98 --- websocket.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/websocket.go b/websocket.go index bc90415..a2ff415 100644 --- a/websocket.go +++ b/websocket.go @@ -388,6 +388,16 @@ func (c *Conn) reader(ctx context.Context) (MessageType, io.Reader, error) { return MessageType(h.opcode), r, nil } +func (c *Conn) CloseRead(ctx context.Context) context.Context { + ctx, cancel := context.WithCancel(ctx) + go func() { + defer cancel() + c.Reader(ctx) + c.Close(StatusPolicyViolation, "unexpected data message") + }() + return ctx +} + // messageReader enables reading a data frame from the WebSocket connection. type messageReader struct { c *Conn -- GitLab