diff --git a/conn.go b/conn.go index 0bec87e..f91b11b 100644 --- a/conn.go +++ b/conn.go @@ -726,13 +726,15 @@ func (c *Conn) advanceFrame() (int, error) { return noFrame, err } case CloseMessage: - c.WriteControl(CloseMessage, []byte{}, time.Now().Add(writeWait)) + echoMessage := []byte{} closeCode := CloseNoStatusReceived closeText := "" if len(payload) >= 2 { + echoMessage = payload[:2] closeCode = int(binary.BigEndian.Uint16(payload)) closeText = string(payload[2:]) } + c.WriteControl(CloseMessage, echoMessage, time.Now().Add(writeWait)) return noFrame, &CloseError{Code: closeCode, Text: closeText} }