Commit fe7a1f50 authored by F0ur's avatar F0ur

fix(ws): fix concurrent write to ws conn

parent 174bb0bb
...@@ -319,6 +319,7 @@ func (s *websocketServer) onBotPushEvent(m coolq.MSG) { ...@@ -319,6 +319,7 @@ func (s *websocketServer) onBotPushEvent(m coolq.MSG) {
for i, l := 0, len(s.eventConn); i < l; i++ { for i, l := 0, len(s.eventConn); i < l; i++ {
conn := s.eventConn[i] conn := s.eventConn[i]
log.Debugf("向WS客户端 %v 推送Event: %v", conn.RemoteAddr().String(), m.ToJson()) log.Debugf("向WS客户端 %v 推送Event: %v", conn.RemoteAddr().String(), m.ToJson())
conn.Lock()
if err := conn.WriteMessage(websocket.TextMessage, []byte(m.ToJson())); err != nil { if err := conn.WriteMessage(websocket.TextMessage, []byte(m.ToJson())); err != nil {
_ = conn.Close() _ = conn.Close()
next := i + 1 next := i + 1
...@@ -330,7 +331,9 @@ func (s *websocketServer) onBotPushEvent(m coolq.MSG) { ...@@ -330,7 +331,9 @@ func (s *websocketServer) onBotPushEvent(m coolq.MSG) {
i-- i--
l-- l--
conn = nil conn = nil
continue
} }
conn.Unlock()
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment