diff --git a/Mage.Server/src/main/java/mage/server/Session.java b/Mage.Server/src/main/java/mage/server/Session.java index ff722981b5d..09daba11125 100644 --- a/Mage.Server/src/main/java/mage/server/Session.java +++ b/Mage.Server/src/main/java/mage/server/Session.java @@ -109,7 +109,7 @@ public class Session { if (user == null) { // user already exists user = UserManager.getInstance().findUser(userName); if (user.getHost().equals(host)) { - user.updateLastActivity(null); // minimizes possible expiration +// user.updateLastActivity(null); // minimizes possible expiration this.userId = user.getId(); if (user.getSessionId().isEmpty()) { logger.info("Reconnecting session for " + userName); diff --git a/Mage.Server/src/main/java/mage/server/SessionManager.java b/Mage.Server/src/main/java/mage/server/SessionManager.java index e35f2f10e09..eee8068a501 100644 --- a/Mage.Server/src/main/java/mage/server/SessionManager.java +++ b/Mage.Server/src/main/java/mage/server/SessionManager.java @@ -215,11 +215,11 @@ public class SessionManager { return null; } - public boolean extendUserSession(String sessionId, String pingInfo) { - Session session = sessions.get(sessionId); - if (session != null) { - return UserManager.getInstance().extendUserSession(session.getUserId(), pingInfo); - } - return false; - } +// public boolean extendUserSession(String sessionId, String pingInfo) { +// Session session = sessions.get(sessionId); +// if (session != null) { +// return UserManager.getInstance().extendUserSession(session.getUserId(), pingInfo); +// } +// return false; +// } } diff --git a/Mage.Server/src/main/java/mage/server/User.java b/Mage.Server/src/main/java/mage/server/User.java index 14e0b0520e5..ae22de3cd8a 100644 --- a/Mage.Server/src/main/java/mage/server/User.java +++ b/Mage.Server/src/main/java/mage/server/User.java @@ -81,7 +81,8 @@ public class User { private String sessionId; private String info = ""; private String pingInfo = ""; - private Date lastActivity; + private Date disconnectionTime; +// private Date lastActivity; private UserState userState; private UserData userData; @@ -92,7 +93,7 @@ public class User { this.userState = UserState.Created; this.connectionTime = new Date(); - this.lastActivity = new Date(); +// this.lastActivity = new Date(); this.tables = new ConcurrentHashMap<>(); this.gameSessions = new ConcurrentHashMap<>(); @@ -151,7 +152,7 @@ public class User { return userState.equals(UserState.Connected) || userState.equals(UserState.Reconnected); } - public String getDisconnectDuration() { + private String getDisconnectDuration() { long secondsDisconnected = getSecondsDisconnected(); long secondsLeft; String sign = ""; @@ -168,7 +169,7 @@ public class User { } public long getSecondsDisconnected() { - return SystemUtil.getDateDiff(lastActivity, new Date(), TimeUnit.SECONDS); + return SystemUtil.getDateDiff(disconnectionTime, new Date(), TimeUnit.SECONDS); } public Date getConnectionTime() { @@ -235,49 +236,49 @@ public class User { } public void sendPlayerUUID(final UUID gameId, final UUID data) { - lastActivity = new Date(); +// lastActivity = new Date(); GameManager.getInstance().sendPlayerUUID(gameId, userId, data); } public void sendPlayerString(final UUID gameId, final String data) { - lastActivity = new Date(); +// lastActivity = new Date(); GameManager.getInstance().sendPlayerString(gameId, userId, data); } public void sendPlayerManaType(final UUID gameId, final UUID playerId, final ManaType data) { - lastActivity = new Date(); +// lastActivity = new Date(); GameManager.getInstance().sendPlayerManaType(gameId, playerId, userId, data); } public void sendPlayerBoolean(final UUID gameId, final Boolean data) { - lastActivity = new Date(); +// lastActivity = new Date(); GameManager.getInstance().sendPlayerBoolean(gameId, userId, data); } public void sendPlayerInteger(final UUID gameId, final Integer data) { - lastActivity = new Date(); +// lastActivity = new Date(); GameManager.getInstance().sendPlayerInteger(gameId, userId, data); } - public void updateLastActivity(String pingInfo) { - if (pingInfo != null) { - this.pingInfo = pingInfo; - } - lastActivity = new Date(); - if (userState == UserState.Disconnected) { // this can happen if user reconnects very fast after disconnect - userState = UserState.Reconnected; - } - } +// public void updateLastActivity(String pingInfo) { +// if (pingInfo != null) { +// this.pingInfo = pingInfo; +// } +// lastActivity = new Date(); +// if (userState == UserState.Disconnected) { // this can happen if user reconnects very fast after disconnect +// userState = UserState.Reconnected; +// } +// } - public boolean isExpired(Date expired) { - if (lastActivity.before(expired)) { - logger.trace(userName + " is expired!"); - userState = UserState.Expired; - return true; - } - logger.trace(new StringBuilder("isExpired: User ").append(userName).append(" lastActivity: ").append(lastActivity).append(" expired: ").append(expired).toString()); - return false; /*userState == UserState.Disconnected && */ - } +// public boolean isExpired(Date expired) { +// if (lastActivity.before(expired)) { +// logger.trace(userName + " is expired!"); +// userState = UserState.Expired; +// return true; +// } +// logger.trace(new StringBuilder("isExpired: User ").append(userName).append(" lastActivity: ").append(lastActivity).append(" expired: ").append(expired).toString()); +// return false; /*userState == UserState.Disconnected && */ +// } private void reconnect() { for (Entry entry: tables.entrySet()) { diff --git a/Mage.Server/src/main/java/mage/server/UserManager.java b/Mage.Server/src/main/java/mage/server/UserManager.java index f1d2e1e32b1..d38df52e75f 100644 --- a/Mage.Server/src/main/java/mage/server/UserManager.java +++ b/Mage.Server/src/main/java/mage/server/UserManager.java @@ -64,14 +64,14 @@ public class UserManager { return INSTANCE; } - private UserManager() { - expireExecutor.scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - checkExpired(); - } - }, 60, 60, TimeUnit.SECONDS); - } +// private UserManager() { +// expireExecutor.scheduleAtFixedRate(new Runnable() { +// @Override +// public void run() { +// checkExpired(); +// } +// }, 60, 60, TimeUnit.SECONDS); +// } public User createUser(String userName, String host) { if (findUser(userName) != null) { @@ -159,31 +159,31 @@ public class UserManager { } } - public boolean extendUserSession(UUID userId, String pingInfo) { - if (userId != null) { - User user = users.get(userId); - if (user != null) { - user.updateLastActivity(pingInfo); - return true; - } - } - return false; - } +// public boolean extendUserSession(UUID userId, String pingInfo) { +// if (userId != null) { +// User user = users.get(userId); +// if (user != null) { +// user.updateLastActivity(pingInfo); +// return true; +// } +// } +// return false; +// } /** * Is the connection lost for more than 3 minutes, the user will be removed (within 3 minutes the user can reconnect) */ - private void checkExpired() { - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.MINUTE, -3); - List usersToCheck = new ArrayList<>(); - usersToCheck.addAll(users.values()); - for (User user : usersToCheck) { - if (!user.getUserState().equals(UserState.Expired) && user.isExpired(calendar.getTime())) { - removeUser(user.getId(), DisconnectReason.SessionExpired); - } - } - } +// private void checkExpired() { +// Calendar calendar = Calendar.getInstance(); +// calendar.add(Calendar.MINUTE, -3); +// List usersToCheck = new ArrayList<>(); +// usersToCheck.addAll(users.values()); +// for (User user : usersToCheck) { +// if (!user.getUserState().equals(UserState.Expired) && user.isExpired(calendar.getTime())) { +// removeUser(user.getId(), DisconnectReason.SessionExpired); +// } +// } +// } public void handleException(Exception ex) { if (ex != null) {