未及时收到回复、断开连接、未定义error,主动静默重连,不弹窗提示

This commit is contained in:
xiekaidong 2023-07-06 15:17:08 +08:00
parent f65285bf46
commit a53dc6d688
2 changed files with 19 additions and 3 deletions

View File

@ -145,7 +145,8 @@ function NetManager:connect(domain, port, callback, socketName)
end)
CS.BF.BFMain.Instance.NetMgr:AddLuaOnDisconnected(function(name)
self:onDisconnect(name)
-- self:onDisconnect(name)
self:disconnectAndReconnect()
end)
CS.BF.BFMain.Instance.NetMgr:AddLuaOnReceiveMessage(function(name, group, recvId, bytes)
@ -554,6 +555,21 @@ function NetManager:disconnectAll()
end
end
function NetManager:disconnectAndReconnect()
if self.alreadyConnected[NetManager.MAIN_SOCKET_NAME] then
if self.reconnectMainId then
return
end
self.reconnectMainId = self:performWithDelayGlobal(function ()
self.reconnectMainId = nil
self:silentReconnectMain()
end, self.mainReconnectWaitTime)
self.mainReconnectWaitTime = self.mainReconnectWaitTime + 1
else
self:closeAll()
end
end
function NetManager:showReconnectMain()
if self.reconnectMainId then
SchedulerManager:unscheduleGlobal(self.reconnectMainId)
@ -832,7 +848,7 @@ function NetManager:onError(socketName, errorType, errorMsg)
elseif errorType == NetErrorCode.DNSParseDomainNameError then
self:closeAll()
else -- 未定义的error
self:disconnect(socketName)
self:disconnectAndReconnect()
end
if not self.disconnectTime then
self.disconnectTime = Time:getServerTime()

View File

@ -794,7 +794,7 @@ function UIManager:showWaitNet(forceRestart)
seq:AppendInterval(GConst.WAIT_NET_RSP_TIME)
seq:OnComplete(function()
-- 一段时间后还没收到回复就断开连接
NetManager:disconnectAll()
NetManager:disconnectAndReconnect()
end)
self.waitNetSeq = seq
elseif not self.waitNetSeq:IsPlaying() then