修复网络连接掉线无法重连的问题,
parent
56b7486287
commit
8988ec5823
|
@ -113,9 +113,13 @@ function Network:OnReconnectFail()
|
|||
MsgPanel.ShowTwo("重连失败,是否尝试重连?", function()
|
||||
Game.Logout()
|
||||
end, function()
|
||||
RequestPanel.Show("正在请求重连")
|
||||
self.re_sendWaitTime = 0
|
||||
self.re_resendTimes = 0
|
||||
if self.isConnected then
|
||||
PopupTipPanel.ShowTip("重连成功!")
|
||||
else
|
||||
RequestPanel.Show("正在请求重连")
|
||||
self.re_sendWaitTime = 0
|
||||
self.re_resendTimes = 0
|
||||
end
|
||||
end, "重新登录")
|
||||
end
|
||||
end
|
||||
|
@ -140,7 +144,8 @@ function Network:SendMessageWithCallBack(nMsgId, nReMsgId, sMsg, func, isHideMas
|
|||
if sMsg then
|
||||
buffer:WriteBuffer(sMsg)
|
||||
end
|
||||
self.sendFlag = true
|
||||
self:SetSending(true)
|
||||
|
||||
self.sendWaitTime = 0
|
||||
|
||||
if not isHideMask then
|
||||
|
@ -148,8 +153,8 @@ function Network:SendMessageWithCallBack(nMsgId, nReMsgId, sMsg, func, isHideMas
|
|||
end
|
||||
--Log("-------SendMessage-----msgId:"..nMsgId)
|
||||
self.socket:SendMessageWithCallBack(nMsgId, nReMsgId, buffer, function(b)
|
||||
--Log("-------ReceiveMessage-----msgId:"..nReMsgId)
|
||||
self.sendFlag = false
|
||||
--Log("-------ReceiveMessage-----msgId:"..nReMsgId)
|
||||
self:SetSending(false)
|
||||
self.resendTimes = 0
|
||||
if self.sendFuncQueue.size > 0 then
|
||||
self.sendFuncQueue:Dequeue()
|
||||
|
@ -171,7 +176,7 @@ function Network:ReceiveErrorInfo(buffer)
|
|||
local msg = CommonProto_pb.ErrorResponse()
|
||||
msg:ParseFromString(data)
|
||||
|
||||
self.sendFlag = false
|
||||
self:SetSending(false)
|
||||
self.resendTimes = 0
|
||||
if self.sendFuncQueue.size > 0 then
|
||||
self.sendFuncQueue:Dequeue()
|
||||
|
@ -227,6 +232,16 @@ function Network:UnRegisterMessage(nMsgId, pMessageHandle)
|
|||
self.socket:UnregistNetMessage(nMsgId, pMessageHandle)
|
||||
end
|
||||
|
||||
-- 设置发送状态
|
||||
function Network:SetSending(isSending)
|
||||
Log("设置当前请求状态:"..tostring(isSending))
|
||||
self.sendFlag = isSending
|
||||
end
|
||||
function Network:IsSending()
|
||||
return self.sendFlag
|
||||
end
|
||||
|
||||
|
||||
function Network:Update()
|
||||
if self.reconnectFlag and self.re_resendTimes <= self.re_maxResendTimes then
|
||||
self.re_sendWaitTime = self.re_sendWaitTime + Time.fixedDeltaTime
|
||||
|
@ -249,7 +264,7 @@ function Network:Update()
|
|||
end
|
||||
end
|
||||
|
||||
if self.sendFlag then
|
||||
if self:IsSending() then
|
||||
self.sendWaitTime = self.sendWaitTime + dt
|
||||
if self.sendWaitTime > self.maxSendWaitTime then
|
||||
if self.resendTimes < self.maxResendTimes then
|
||||
|
@ -257,10 +272,15 @@ function Network:Update()
|
|||
MyPCall(self.sendFunc)
|
||||
elseif self.resendTimes == self.maxResendTimes then
|
||||
RequestPanel.Hide()
|
||||
MsgPanel.ShowTwo("请求失败,是否重新请求?", function()
|
||||
MsgPanel.ShowTwo("请求失败,请再次尝试!", function()
|
||||
Game.Logout()
|
||||
end, function()
|
||||
self.resendTimes = 0
|
||||
Log("获取当前请求状态:"..tostring(self:IsSending()))
|
||||
-- if self:IsSending() then
|
||||
self:SetSending(false)
|
||||
self.resendTimes = 0
|
||||
self.sendFuncQueue:Clear()
|
||||
-- end
|
||||
end, "重新登录")
|
||||
end
|
||||
self.resendTimes = self.resendTimes + 1
|
||||
|
|
Loading…
Reference in New Issue