mirror of
https://github.com/YspCoder/clawgo.git
synced 2026-05-17 15:27:30 +08:00
parallel optimization groundwork
This commit is contained in:
@@ -153,17 +153,24 @@ func (s *Server) broadcastEvent(payload map[string]interface{}) {
|
||||
subs = append(subs, conn)
|
||||
}
|
||||
s.eventSubsMu.Unlock()
|
||||
var failed []*websocket.Conn
|
||||
for _, conn := range subs {
|
||||
if conn == nil {
|
||||
continue
|
||||
}
|
||||
if err := conn.WriteJSON(payload); err != nil {
|
||||
s.eventSubsMu.Lock()
|
||||
delete(s.eventSubs, conn)
|
||||
s.eventSubsMu.Unlock()
|
||||
failed = append(failed, conn)
|
||||
_ = conn.Close()
|
||||
}
|
||||
}
|
||||
if len(failed) == 0 {
|
||||
return
|
||||
}
|
||||
s.eventSubsMu.Lock()
|
||||
for _, conn := range failed {
|
||||
delete(s.eventSubs, conn)
|
||||
}
|
||||
s.eventSubsMu.Unlock()
|
||||
}
|
||||
|
||||
func writeJSON(w http.ResponseWriter, payload interface{}) {
|
||||
|
||||
Reference in New Issue
Block a user