断线重连 心跳修改
parent
f87beb7368
commit
63aa8f13f3
|
@ -11,17 +11,23 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||
public class OnlineUserManager {
|
||||
|
||||
public static void userOnline(int uid, ISession session) {
|
||||
tokenMap.put(session.getToken(),uid);
|
||||
sessionMap.put(uid, session);
|
||||
}
|
||||
|
||||
public static Map<Integer, ISession> sessionMap = new ConcurrentHashMap<>();
|
||||
|
||||
public static Map<Integer,Integer> tokenMap = new ConcurrentHashMap<>();
|
||||
|
||||
public static void checkOnline(){
|
||||
UserManager.checkOffline();
|
||||
}
|
||||
|
||||
|
||||
public static void userOffline(int uid) {
|
||||
if(sessionMap.containsKey(uid)){
|
||||
tokenMap.remove(sessionMap.get(uid).getToken());
|
||||
}
|
||||
sessionMap.remove(uid);
|
||||
}
|
||||
|
||||
|
@ -50,23 +56,10 @@ public class OnlineUserManager {
|
|||
}
|
||||
return sessionMap.containsKey(uid);
|
||||
}
|
||||
|
||||
static class DefinaMap<k,v> extends HashMap<k,v>{
|
||||
|
||||
@Override
|
||||
public boolean remove(Object key, Object value) {
|
||||
return super.remove(key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public v put(k key, v value) {
|
||||
return super.put(key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
super.clear();
|
||||
public static boolean checkOnlineByToken(int token) {
|
||||
if (tokenMap == null) {
|
||||
return true;
|
||||
}
|
||||
return tokenMap.containsKey(token);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -131,7 +131,7 @@ public class SessionManager implements INetSession<ISession>, INetReceived<ISess
|
|||
|
||||
|
||||
private void dealHeartBeat(ISession session) {
|
||||
session.setHeartBreatNums(3);
|
||||
session.setHeartBreatNums(4);
|
||||
MessageUtil.sendHeartBeat(session);
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ public class SessionManager implements INetSession<ISession>, INetReceived<ISess
|
|||
*/
|
||||
private int onRepeatLogin(ISession newSession) {
|
||||
int uid = newSession.getUid();
|
||||
if (OnlineUserManager.checkUidOnline(uid)) {
|
||||
if (OnlineUserManager.checkUidOnline(uid)&&!OnlineUserManager.checkOnlineByToken(newSession.getToken())) {
|
||||
ISession iSession = OnlineUserManager.getSessionByUid(uid);
|
||||
if (iSession == newSession) {
|
||||
return 0;
|
||||
|
|
|
@ -52,7 +52,7 @@ public class ISession extends NettyGameSession {
|
|||
}
|
||||
}
|
||||
|
||||
private int heartBreatNums = 3;
|
||||
private int heartBreatNums = 4;
|
||||
|
||||
//<<<<<<< HEAD
|
||||
//=======
|
||||
|
|
Loading…
Reference in New Issue