From 9f060ce2ede463727ef78fe1b6c04c5b14fafa36 Mon Sep 17 00:00:00 2001 From: Mrs4s <1844812067@qq.com> Date: Sat, 22 Aug 2020 03:02:19 +0800 Subject: [PATCH] fix lock & http server error. --- server/http.go | 9 ++++++++- server/websocket.go | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) 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())