fix relogin

wangyuan 2019-11-02 17:13:07 +08:00
parent e11257f348
commit a08d6048ba
1 changed files with 9 additions and 5 deletions

View File

@ -158,7 +158,7 @@ public class ProtocolsManager implements ProtocolsAbstract {
dealHeartBeat(session);
return;
}
if (packetNetData.getMsgId()== MessageTypeProto.MessageType.LOGIN_REQUEST_VALUE ||
packetNetData.getMsgId()== MessageTypeProto.MessageType.RECONNECT_REQUEST_VALUE){
@ -168,7 +168,7 @@ public class ProtocolsManager implements ProtocolsAbstract {
return;
}
//处理多设备重登
if(dealRepeatLogin(session.getUid()) == 1){
if(dealRepeatLogin(session) == 1){
return;
}
//刷新token
@ -305,9 +305,13 @@ public class ProtocolsManager implements ProtocolsAbstract {
}
private int dealRepeatLogin(int uid) {
private int dealRepeatLogin(ISession newSession) {
int uid = newSession.getUid();
if (OnlineUserManager.checkUidOnline(uid)){
ISession iSession = OnlineUserManager.getSessionByUid(uid);
if(iSession == newSession){
return 0;
}
MessageUtil.sendErrorCode(iSession, ErrorCode.reloginCode,"您的账号已经在其他设备上登陆,请确认账号安全!");
iSession.setOfflineType(ErrorCode.reloginCode);
backUpMsgToRedis(iSession);
@ -318,9 +322,9 @@ public class ProtocolsManager implements ProtocolsAbstract {
}
private int checkIndex(ISession iSession, PacketNetData packetNetData) {
if(packetNetData.getMsgId() == MessageTypeProto.MessageType.LOGIN_REQUEST_VALUE || packetNetData.getMsgId() == MessageTypeProto.MessageType.RECONNECT_REQUEST_VALUE){
/* if(packetNetData.getMsgId() == MessageTypeProto.MessageType.LOGIN_REQUEST_VALUE || packetNetData.getMsgId() == MessageTypeProto.MessageType.RECONNECT_REQUEST_VALUE){
return 0;
}
}*/
int index = packetNetData.getIndex();
if (iSession.getIndex() >= index){
byte[] message = iSession.getCacheMessage(index);