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