other: 优化 server 包部分 error 的处理方式
This commit is contained in:
parent
34a680e710
commit
82ecb98397
|
@ -693,7 +693,7 @@ func (slf *Server) dispatchMessage(dispatcher *dispatcher, msg *Message) {
|
||||||
go func(ctx context.Context, msg *Message) {
|
go func(ctx context.Context, msg *Message) {
|
||||||
select {
|
select {
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
if err := ctx.Err(); err == context.DeadlineExceeded {
|
if err := ctx.Err(); errors.Is(err, context.DeadlineExceeded) {
|
||||||
log.Warn("Server", log.String("MessageType", messageNames[msg.t]), log.String("Info", msg.String()), log.Any("SuspectedDeadlock", msg))
|
log.Warn("Server", log.String("MessageType", messageNames[msg.t]), log.String("Info", msg.String()), log.Any("SuspectedDeadlock", msg))
|
||||||
slf.OnDeadlockDetectEvent(msg)
|
slf.OnDeadlockDetectEvent(msg)
|
||||||
}
|
}
|
||||||
|
@ -708,9 +708,7 @@ func (slf *Server) dispatchMessage(dispatcher *dispatcher, msg *Message) {
|
||||||
stack := string(debug.Stack())
|
stack := string(debug.Stack())
|
||||||
log.Error("Server", log.String("MessageType", messageNames[msg.t]), log.String("Info", msg.String()), log.Any("error", err), log.String("stack", stack))
|
log.Error("Server", log.String("MessageType", messageNames[msg.t]), log.String("Info", msg.String()), log.Any("error", err), log.String("stack", stack))
|
||||||
fmt.Println(stack)
|
fmt.Println(stack)
|
||||||
if e, ok := err.(error); ok {
|
slf.OnMessageErrorEvent(msg, fmt.Errorf("%v", err))
|
||||||
slf.OnMessageErrorEvent(msg, e)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if msg.t == MessageTypeUniqueAsyncCallback || msg.t == MessageTypeUniqueShuntAsyncCallback {
|
if msg.t == MessageTypeUniqueAsyncCallback || msg.t == MessageTypeUniqueShuntAsyncCallback {
|
||||||
dispatcher.antiUnique(msg.name)
|
dispatcher.antiUnique(msg.name)
|
||||||
|
@ -729,7 +727,9 @@ func (slf *Server) dispatchMessage(dispatcher *dispatcher, msg *Message) {
|
||||||
|
|
||||||
switch msg.t {
|
switch msg.t {
|
||||||
case MessageTypePacket:
|
case MessageTypePacket:
|
||||||
if !slf.OnConnectionPacketPreprocessEvent(msg.conn, msg.packet, func(newPacket []byte) { msg.packet = newPacket }) {
|
if !slf.OnConnectionPacketPreprocessEvent(msg.conn, msg.packet, func(newPacket []byte) {
|
||||||
|
msg.packet = newPacket
|
||||||
|
}) {
|
||||||
slf.OnConnectionReceivePacketEvent(msg.conn, msg.packet)
|
slf.OnConnectionReceivePacketEvent(msg.conn, msg.packet)
|
||||||
}
|
}
|
||||||
case MessageTypeError:
|
case MessageTypeError:
|
||||||
|
|
Loading…
Reference in New Issue