From ce334f70a6c22144338c5851ec7bde3d1396a241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xinfan=2Ewu=28=E5=90=B4=E6=AD=86=E5=B8=86=29?= Date: Fri, 13 Dec 2024 16:15:48 +0800 Subject: [PATCH] feat:close session when send heart beat message failed --- pkg/remoting/getty/listener.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/remoting/getty/listener.go b/pkg/remoting/getty/listener.go index f5ba96ff2..2f2e97489 100644 --- a/pkg/remoting/getty/listener.go +++ b/pkg/remoting/getty/listener.go @@ -115,10 +115,14 @@ func (g *gettyClientHandler) OnMessage(session getty.Session, pkg interface{}) { func (g *gettyClientHandler) OnCron(session getty.Session) { log.Debug("session{%s} Oncron executing", session.Stat()) - g.transferBeatHeart(session, message.HeartBeatMessagePing) + err := g.transferHeartBeat(session, message.HeartBeatMessagePing) + if err != nil { + log.Errorf("failed to send heart beat: {%#v}", err.Error()) + g.sessionManager.releaseSession(session) + } } -func (g *gettyClientHandler) transferBeatHeart(session getty.Session, msg message.HeartBeatMessage) { +func (g *gettyClientHandler) transferHeartBeat(session getty.Session, msg message.HeartBeatMessage) error { rpcMessage := message.RpcMessage{ ID: int32(g.idGenerator.Inc()), Type: message.GettyRequestTypeHeartbeatRequest, @@ -126,7 +130,7 @@ func (g *gettyClientHandler) transferBeatHeart(session getty.Session, msg messag Compressor: 0, Body: msg, } - GetGettyRemotingInstance().SendASync(rpcMessage, session, nil) + return GetGettyRemotingInstance().SendASync(rpcMessage, session, nil) } func (g *gettyClientHandler) RegisterProcessor(msgType message.MessageType, processor processor.RemotingProcessor) {