fix: server 包修复服务器关闭后发送消息引起的空指针问题
This commit is contained in:
parent
518d47ae6a
commit
3062428051
|
@ -106,6 +106,9 @@ func (slf MessageType) String() string {
|
||||||
|
|
||||||
// PushPacketMessage 向特定服务器中推送 MessageTypePacket 消息
|
// PushPacketMessage 向特定服务器中推送 MessageTypePacket 消息
|
||||||
func PushPacketMessage(srv *Server, conn *Conn, wst int, packet []byte, mark ...any) {
|
func PushPacketMessage(srv *Server, conn *Conn, wst int, packet []byte, mark ...any) {
|
||||||
|
if srv.messagePool == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
msg := srv.messagePool.Get()
|
msg := srv.messagePool.Get()
|
||||||
msg.t = MessageTypePacket
|
msg.t = MessageTypePacket
|
||||||
msg.attrs = append([]any{&Conn{ctx: context.WithValue(conn.ctx, contextKeyWST, wst), connection: conn.connection}, packet}, mark...)
|
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 消息
|
// PushErrorMessage 向特定服务器中推送 MessageTypeError 消息
|
||||||
func PushErrorMessage(srv *Server, err error, action MessageErrorAction, mark ...any) {
|
func PushErrorMessage(srv *Server, err error, action MessageErrorAction, mark ...any) {
|
||||||
|
if srv.messagePool == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
msg := srv.messagePool.Get()
|
msg := srv.messagePool.Get()
|
||||||
msg.t = MessageTypeError
|
msg.t = MessageTypeError
|
||||||
msg.attrs = append([]any{err, action}, mark...)
|
msg.attrs = append([]any{err, action}, mark...)
|
||||||
|
@ -122,6 +128,9 @@ func PushErrorMessage(srv *Server, err error, action MessageErrorAction, mark ..
|
||||||
|
|
||||||
// PushCrossMessage 向特定服务器中推送 MessageTypeCross 消息
|
// PushCrossMessage 向特定服务器中推送 MessageTypeCross 消息
|
||||||
func PushCrossMessage(srv *Server, crossName string, serverId int64, packet []byte, mark ...any) {
|
func PushCrossMessage(srv *Server, crossName string, serverId int64, packet []byte, mark ...any) {
|
||||||
|
if srv.messagePool == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
if serverId == srv.id {
|
if serverId == srv.id {
|
||||||
msg := srv.messagePool.Get()
|
msg := srv.messagePool.Get()
|
||||||
msg.t = MessageTypeCross
|
msg.t = MessageTypeCross
|
||||||
|
@ -141,6 +150,9 @@ func PushCrossMessage(srv *Server, crossName string, serverId int64, packet []by
|
||||||
|
|
||||||
// PushTickerMessage 向特定服务器中推送 MessageTypeTicker 消息
|
// PushTickerMessage 向特定服务器中推送 MessageTypeTicker 消息
|
||||||
func PushTickerMessage(srv *Server, caller func(), mark ...any) {
|
func PushTickerMessage(srv *Server, caller func(), mark ...any) {
|
||||||
|
if srv.messagePool == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
msg := srv.messagePool.Get()
|
msg := srv.messagePool.Get()
|
||||||
msg.t = MessageTypeTicker
|
msg.t = MessageTypeTicker
|
||||||
msg.attrs = append([]any{caller}, mark...)
|
msg.attrs = append([]any{caller}, mark...)
|
||||||
|
@ -154,6 +166,9 @@ func PushTickerMessage(srv *Server, caller func(), mark ...any) {
|
||||||
//
|
//
|
||||||
// 在通过 WithShunt 使用分流服务器时,异步消息不会转换到分流通道中进行处理。依旧需要注意上方第三条
|
// 在通过 WithShunt 使用分流服务器时,异步消息不会转换到分流通道中进行处理。依旧需要注意上方第三条
|
||||||
func PushAsyncMessage(srv *Server, caller func() error, callback func(err error), mark ...any) {
|
func PushAsyncMessage(srv *Server, caller func() error, callback func(err error), mark ...any) {
|
||||||
|
if srv.messagePool == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
msg := srv.messagePool.Get()
|
msg := srv.messagePool.Get()
|
||||||
msg.t = MessageTypeAsync
|
msg.t = MessageTypeAsync
|
||||||
msg.attrs = append([]any{caller, callback}, mark...)
|
msg.attrs = append([]any{caller, callback}, mark...)
|
||||||
|
@ -162,6 +177,9 @@ func PushAsyncMessage(srv *Server, caller func() error, callback func(err error)
|
||||||
|
|
||||||
// PushSystemMessage 向特定服务器中推送 MessageTypeSystem 消息
|
// PushSystemMessage 向特定服务器中推送 MessageTypeSystem 消息
|
||||||
func PushSystemMessage(srv *Server, handle func(), mark ...any) {
|
func PushSystemMessage(srv *Server, handle func(), mark ...any) {
|
||||||
|
if srv.messagePool == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
msg := srv.messagePool.Get()
|
msg := srv.messagePool.Get()
|
||||||
msg.t = MessageTypeSystem
|
msg.t = MessageTypeSystem
|
||||||
msg.attrs = append([]any{handle}, mark...)
|
msg.attrs = append([]any{handle}, mark...)
|
||||||
|
|
Loading…
Reference in New Issue