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;
}