diff --git a/cim-core/src/com/farsunset/cim/nio/session/CIMSession.java b/cim-core/src/com/farsunset/cim/nio/session/CIMSession.java index 0161272..c8083d2 100644 --- a/cim-core/src/com/farsunset/cim/nio/session/CIMSession.java +++ b/cim-core/src/com/farsunset/cim/nio/session/CIMSession.java @@ -27,7 +27,8 @@ public class CIMSession implements Serializable{ private IoSession session; - private String id;//session全局ID + private String gid;//session全局ID + private Long nid;//session在本台服务器上的ID private String deviceId;//客户端设备ID private String host;//session绑定的服务器IP private String account;//session绑定的账号 @@ -40,6 +41,7 @@ public class CIMSession implements Serializable{ public CIMSession(IoSession session) { this.session = session; + this.nid = session.getId(); } public CIMSession() @@ -63,11 +65,25 @@ public class CIMSession implements Serializable{ } - public String getId() { - return id; + + + + + public String getGid() { + return gid; } + public void setGid(String gid) { + this.gid = gid; + } + public Long getNid() { + return nid; + } + + public void setNid(Long nid) { + this.nid = nid; + } public String getDeviceId() { return deviceId; @@ -95,12 +111,7 @@ public class CIMSession implements Serializable{ } - - public void setId(String id) { - this.id = id; - } - - + public String getHost() { return host; diff --git a/ichat-server/.classpath b/ichat-server/.classpath index 843570c..6c62d67 100644 --- a/ichat-server/.classpath +++ b/ichat-server/.classpath @@ -19,12 +19,15 @@ + + + @@ -36,8 +39,5 @@ - - - diff --git a/ichat-server/WebRoot/WEB-INF/lib/cim-core.1.5.jar b/ichat-server/WebRoot/WEB-INF/lib/cim-core.1.5.jar index 227af62..6c30579 100644 Binary files a/ichat-server/WebRoot/WEB-INF/lib/cim-core.1.5.jar and b/ichat-server/WebRoot/WEB-INF/lib/cim-core.1.5.jar differ diff --git a/ichat-server/src/main/java/com/farsunset/ichat/cim/handler/BindHandler.java b/ichat-server/src/main/java/com/farsunset/ichat/cim/handler/BindHandler.java index 11d5b1f..089b9ff 100644 --- a/ichat-server/src/main/java/com/farsunset/ichat/cim/handler/BindHandler.java +++ b/ichat-server/src/main/java/com/farsunset/ichat/cim/handler/BindHandler.java @@ -34,7 +34,7 @@ public class BindHandler implements CIMRequestHandler { newSession.setAccount(account); newSession.setDeviceId(message.get("deviceId")); - newSession.setId(UUID.randomUUID().toString()); + newSession.setGid(UUID.randomUUID().toString()); newSession.setHost(InetAddress.getLocalHost().getHostAddress()); newSession.setChannel( message.get("channel")); newSession.setDeviceModel(message.get("device")); diff --git a/ichat-server/src/main/java/com/farsunset/ichat/cim/session/ClusterSessionManager.java b/ichat-server/src/main/java/com/farsunset/ichat/cim/session/ClusterSessionManager.java index 17e24a4..80c1712 100644 --- a/ichat-server/src/main/java/com/farsunset/ichat/cim/session/ClusterSessionManager.java +++ b/ichat-server/src/main/java/com/farsunset/ichat/cim/session/ClusterSessionManager.java @@ -2,12 +2,7 @@ package com.farsunset.ichat.cim.session; import java.util.Collection; -import java.util.HashMap; -import java.util.concurrent.atomic.AtomicInteger; -import org.apache.mina.core.session.IoSession; - -import com.farsunset.cim.nio.constant.CIMConstant; import com.farsunset.cim.nio.session.CIMSession; import com.farsunset.cim.nio.session.SessionManager; @@ -19,10 +14,9 @@ import com.farsunset.cim.nio.session.SessionManager; public class ClusterSessionManager implements SessionManager{ - private static HashMap sessions =new HashMap(); + // private static HashMap sessions =new HashMap(); - private static final AtomicInteger connectionsCounter = new AtomicInteger(0); @@ -30,12 +24,7 @@ public class ClusterSessionManager implements SessionManager{ * */ public void addSession(String account,CIMSession session) { - if(session!=null) - { - session.setAttribute(CIMConstant.SESSION_KEY, account); - sessions.put(account, session.getIoSession()); - connectionsCounter.incrementAndGet(); - } + /** * 下面 将session 存入数据库 @@ -46,10 +35,9 @@ public class ClusterSessionManager implements SessionManager{ public CIMSession getSession(String account) { - /*//这里查询数据库 - CIMSession session = database.getSession(account); - session.setIoSession(sessions.get(account)); - + //这里查询数据库 + /*CIMSession session = database.getSession(account); + session.setIoSession(((NioSocketAcceptor) ContextHolder.getBean("serverAcceptor")).getManagedSessions().get(session.getNid())); return session;*/ return null; } @@ -65,7 +53,6 @@ public class ClusterSessionManager implements SessionManager{ public void removeSession(CIMSession session) { - sessions.remove(session.getAccount()); //database.removeSession(session.getAttribute(CIMConstant.SESSION_KEY));*/ } @@ -73,7 +60,6 @@ public class ClusterSessionManager implements SessionManager{ public void removeSession(String account) { //database.removeSession(account);*/ - sessions.remove(account); } @@ -81,7 +67,8 @@ public class ClusterSessionManager implements SessionManager{ public boolean containsCIMSession(CIMSession ios) { //return database.containsCIMSession(session.getAccount()); - return sessions.containsKey(ios.getAttribute(CIMConstant.SESSION_KEY)) || sessions.containsValue(ios); + + return false; }