diff --git a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java index 954a6d377..42bd4b9e8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/network/server/ProtocolsManager.java @@ -142,9 +142,9 @@ public class ProtocolsManager implements ProtocolsAbstract { return; } //处理多设备重登 - if (dealRepeatLogin(session)==1){ - MessageUtil.sendErrorCode(session,0,"您的账号已经在其他设备上登陆,请确认账号安全!"); - return; + if (dealRepeatLogin(session.getUid())==1){ + /* MessageUtil.sendErrorCode(session,0,"您的账号已经在其他设备上登陆,请确认账号安全!"); + return;*/ } //刷新token refreshToken(session); @@ -222,12 +222,11 @@ public class ProtocolsManager implements ProtocolsAbstract { } - private int dealRepeatLogin(ISession session) { - if (OnlineUserManager.checkUidOnline(session.getUid())){ - ISession iSession = OnlineUserManager.getSessionByUid(session.getUid()); + private int dealRepeatLogin(int uid) { + if (OnlineUserManager.checkUidOnline(uid)){ + ISession iSession = OnlineUserManager.getSessionByUid(uid); MessageUtil.sendErrorCode(iSession, ErrorCode.reloginCode,"您的账号已经在其他设备上登陆,请确认账号安全!"); - OnlineUserManager.userOffline(iSession.getUid()); - iSession.close(); + iSession.setOfflineType(ErrorCode.reloginCode); return 1; } return 0; @@ -281,6 +280,9 @@ public class ProtocolsManager implements ProtocolsAbstract { // } catch (FileNotFoundException e) { // e.printStackTrace(); // } + if(session.getOfflineType() == ErrorCode.reloginCode){ + return; + } if (session.getCtx() != null) { GameMessageHandler.allChannels.remove(session.getCtx().channel()); }