diff --git a/server/http.go b/server/http.go index 998730f..fcf2935 100644 --- a/server/http.go +++ b/server/http.go @@ -4,6 +4,7 @@ import ( "crypto/hmac" "crypto/sha1" "encoding/hex" + "os" "strconv" "strings" "time" @@ -157,7 +158,13 @@ func (s *httpServer) Run(addr, authToken string, bot *coolq.CQBot) { go func() { log.Infof("CQ HTTP 服务器已启动: %v", addr) - log.Fatal(s.engine.Run(addr)) + err := s.engine.Run(addr) + if err != nil { + log.Error(err) + log.Infof("请检查端口是否被占用.") + time.Sleep(time.Second * 5) + os.Exit(1) + } }() } diff --git a/server/websocket.go b/server/websocket.go index 4d5d280..42fdf30 100644 --- a/server/websocket.go +++ b/server/websocket.go @@ -314,6 +314,8 @@ func (c *websocketConn) handleRequest(bot *coolq.CQBot, payload []byte) { } func (s *websocketServer) onBotPushEvent(m coolq.MSG) { + s.eventConnMutex.Lock() + s.eventConnMutex.Unlock() pos := 0 for _, conn := range s.eventConn { log.Debugf("向WS客户端 %v 推送Event: %v", conn.RemoteAddr().String(), m.ToJson())