From 0a3a7b11b500b991e36e6192c7bbccf1ce1ae697 Mon Sep 17 00:00:00 2001 From: zijiren233 Date: Mon, 16 Oct 2023 17:43:45 +0800 Subject: [PATCH] Fix: ws reg error send err msg --- server/handlers/websocket.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/server/handlers/websocket.go b/server/handlers/websocket.go index 35784da..1a3fbd6 100644 --- a/server/handlers/websocket.go +++ b/server/handlers/websocket.go @@ -37,16 +37,18 @@ func NewWSMessageHandler(u *room.User) func(c *websocket.Conn) error { client, err := u.RegClient(c) if err != nil { log.Errorf("ws: register client error: %v", err) - b, err := json.Marshal(room.ElementMessage{ + wc, err2 := c.NextWriter(websocket.BinaryMessage) + if err2 != nil { + return err2 + } + defer wc.Close() + em := room.ElementMessage{ ElementMessage: &pb.ElementMessage{ Type: pb.ElementMessageType_ERROR, Message: err.Error(), }, - }) - if err != nil { - return err } - return c.WriteMessage(websocket.TextMessage, b) + return em.Encode(wc) } log.Infof("ws: room %s user %s connected", u.Room().Id(), u.Name()) defer func() {