未及时收到回复、断开连接、未定义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) end)
CS.BF.BFMain.Instance.NetMgr:AddLuaOnDisconnected(function(name) CS.BF.BFMain.Instance.NetMgr:AddLuaOnDisconnected(function(name)
self:onDisconnect(name) -- self:onDisconnect(name)
self:disconnectAndReconnect()
end) end)
CS.BF.BFMain.Instance.NetMgr:AddLuaOnReceiveMessage(function(name, group, recvId, bytes) CS.BF.BFMain.Instance.NetMgr:AddLuaOnReceiveMessage(function(name, group, recvId, bytes)
@ -554,6 +555,21 @@ function NetManager:disconnectAll()
end end
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() function NetManager:showReconnectMain()
if self.reconnectMainId then if self.reconnectMainId then
SchedulerManager:unscheduleGlobal(self.reconnectMainId) SchedulerManager:unscheduleGlobal(self.reconnectMainId)
@ -832,7 +848,7 @@ function NetManager:onError(socketName, errorType, errorMsg)
elseif errorType == NetErrorCode.DNSParseDomainNameError then elseif errorType == NetErrorCode.DNSParseDomainNameError then
self:closeAll() self:closeAll()
else -- 未定义的error else -- 未定义的error
self:disconnect(socketName) self:disconnectAndReconnect()
end end
if not self.disconnectTime then if not self.disconnectTime then
self.disconnectTime = Time:getServerTime() self.disconnectTime = Time:getServerTime()

View File

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