From 3062428051b075ccb53f1758d5f905b047401af1 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Thu, 31 Aug 2023 10:12:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20server=20=E5=8C=85=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=85=B3=E9=97=AD=E5=90=8E=E5=8F=91?= =?UTF-8?q?=E9=80=81=E6=B6=88=E6=81=AF=E5=BC=95=E8=B5=B7=E7=9A=84=E7=A9=BA?= =?UTF-8?q?=E6=8C=87=E9=92=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/message.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/server/message.go b/server/message.go index 4b32257..57d5eac 100644 --- a/server/message.go +++ b/server/message.go @@ -106,6 +106,9 @@ func (slf MessageType) String() string { // PushPacketMessage 向特定服务器中推送 MessageTypePacket 消息 func PushPacketMessage(srv *Server, conn *Conn, wst int, packet []byte, mark ...any) { + if srv.messagePool == nil { + return + } msg := srv.messagePool.Get() msg.t = MessageTypePacket msg.attrs = append([]any{&Conn{ctx: context.WithValue(conn.ctx, contextKeyWST, wst), connection: conn.connection}, packet}, mark...) @@ -114,6 +117,9 @@ func PushPacketMessage(srv *Server, conn *Conn, wst int, packet []byte, mark ... // PushErrorMessage 向特定服务器中推送 MessageTypeError 消息 func PushErrorMessage(srv *Server, err error, action MessageErrorAction, mark ...any) { + if srv.messagePool == nil { + return + } msg := srv.messagePool.Get() msg.t = MessageTypeError msg.attrs = append([]any{err, action}, mark...) @@ -122,6 +128,9 @@ func PushErrorMessage(srv *Server, err error, action MessageErrorAction, mark .. // PushCrossMessage 向特定服务器中推送 MessageTypeCross 消息 func PushCrossMessage(srv *Server, crossName string, serverId int64, packet []byte, mark ...any) { + if srv.messagePool == nil { + return + } if serverId == srv.id { msg := srv.messagePool.Get() msg.t = MessageTypeCross @@ -141,6 +150,9 @@ func PushCrossMessage(srv *Server, crossName string, serverId int64, packet []by // PushTickerMessage 向特定服务器中推送 MessageTypeTicker 消息 func PushTickerMessage(srv *Server, caller func(), mark ...any) { + if srv.messagePool == nil { + return + } msg := srv.messagePool.Get() msg.t = MessageTypeTicker msg.attrs = append([]any{caller}, mark...) @@ -154,6 +166,9 @@ func PushTickerMessage(srv *Server, caller func(), mark ...any) { // // 在通过 WithShunt 使用分流服务器时,异步消息不会转换到分流通道中进行处理。依旧需要注意上方第三条 func PushAsyncMessage(srv *Server, caller func() error, callback func(err error), mark ...any) { + if srv.messagePool == nil { + return + } msg := srv.messagePool.Get() msg.t = MessageTypeAsync msg.attrs = append([]any{caller, callback}, mark...) @@ -162,6 +177,9 @@ func PushAsyncMessage(srv *Server, caller func() error, callback func(err error) // PushSystemMessage 向特定服务器中推送 MessageTypeSystem 消息 func PushSystemMessage(srv *Server, handle func(), mark ...any) { + if srv.messagePool == nil { + return + } msg := srv.messagePool.Get() msg.t = MessageTypeSystem msg.attrs = append([]any{handle}, mark...)