From 8988ec58236c5f32b75e1f0f5c43631a6d6d705e Mon Sep 17 00:00:00 2001 From: gaoxin Date: Tue, 1 Sep 2020 20:30:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BD=91=E7=BB=9C=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E6=8E=89=E7=BA=BF=E6=97=A0=E6=B3=95=E9=87=8D=E8=BF=9E?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ManagedResources/~Lua/Logic/Network.lua | 40 ++++++++++++++----- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Logic/Network.lua b/Assets/ManagedResources/~Lua/Logic/Network.lua index 03386a2403..0d952c0f23 100644 --- a/Assets/ManagedResources/~Lua/Logic/Network.lua +++ b/Assets/ManagedResources/~Lua/Logic/Network.lua @@ -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