From 3aea70e92a0de4081b166f6347e2c2d5bf69113b Mon Sep 17 00:00:00 2001 From: Mrs4s <1844812067@qq.com> Date: Thu, 30 Jul 2020 20:04:00 +0800 Subject: [PATCH] fix concurrent write panic #6 --- server/websocket.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/websocket.go b/server/websocket.go index 1f236f2..32112b8 100644 --- a/server/websocket.go +++ b/server/websocket.go @@ -170,7 +170,9 @@ func (c *websocketClient) listenApi(conn *wsc.Conn, u bool) { if j.Get("echo").Exists() { ret["echo"] = j.Get("echo").Value() } + c.pushLock.Lock() _, _ = conn.Write([]byte(ret.ToJson())) + c.pushLock.Unlock() } } if c.conf.ReverseReconnectInterval != 0 { @@ -276,7 +278,9 @@ func (s *websocketServer) listenApi(c *websocket.Conn) { if j.Get("echo").Exists() { ret["echo"] = j.Get("echo").Value() } + s.pushLock.Lock() _ = c.WriteJSON(ret) + s.pushLock.Unlock() } } }