diff --git a/cim_for_mina/cim-boot-server/.classpath b/cim_for_mina/cim-boot-server/.classpath
index 6c81e95..467ef2f 100644
--- a/cim_for_mina/cim-boot-server/.classpath
+++ b/cim_for_mina/cim-boot-server/.classpath
@@ -14,6 +14,5 @@
-
diff --git a/cim_for_mina/cim-boot-server/libs/cim-server-sdk-3.5.jar b/cim_for_mina/cim-boot-server/libs/cim-server-sdk-3.5.jar
new file mode 100644
index 0000000..5fc22ff
Binary files /dev/null and b/cim_for_mina/cim-boot-server/libs/cim-server-sdk-3.5.jar differ
diff --git a/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/filter/CIMLoggingFilter.java b/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/filter/CIMLoggingFilter.java
new file mode 100644
index 0000000..a075400
--- /dev/null
+++ b/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/filter/CIMLoggingFilter.java
@@ -0,0 +1,94 @@
+/**
+ * Copyright 2013-2023 Xia Jun(3979434@qq.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ***************************************************************************************
+ * *
+ * Website : http://www.farsunset.com *
+ * *
+ ***************************************************************************************
+ */
+package com.farsunset.cim.sdk.server.filter;
+
+import org.apache.mina.core.filterchain.IoFilterAdapter;
+import org.apache.mina.core.session.IdleStatus;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.core.write.WriteRequest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 日志打印,添加session 的id和ip address
+ */
+public class CIMLoggingFilter extends IoFilterAdapter {
+
+ private final Logger logger = LoggerFactory.getLogger(CIMLoggingFilter.class);
+
+ @Override
+ public void exceptionCaught(NextFilter nextFilter, IoSession session, Throwable cause) throws Exception {
+
+ logger.info("EXCEPTION" + getSessionInfo(session) + ":", cause);
+ nextFilter.exceptionCaught(session, cause);
+ }
+
+ @Override
+ public void messageReceived(NextFilter nextFilter, IoSession session, Object message) throws Exception {
+ logger.info("RECEIVED" + getSessionInfo(session) + ": {}", message);
+ nextFilter.messageReceived(session, message);
+ }
+
+ @Override
+ public void messageSent(NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception {
+ logger.info("SENT" + getSessionInfo(session) + ": {}", writeRequest.getOriginalRequest().getMessage());
+ nextFilter.messageSent(session, writeRequest);
+ }
+
+ @Override
+ public void sessionCreated(NextFilter nextFilter, IoSession session) throws Exception {
+ logger.info("CREATED" + getSessionInfo(session));
+ nextFilter.sessionCreated(session);
+ }
+
+ @Override
+ public void sessionOpened(NextFilter nextFilter, IoSession session) throws Exception {
+ logger.info("OPENED" + getSessionInfo(session));
+ nextFilter.sessionOpened(session);
+ }
+
+ @Override
+ public void sessionIdle(NextFilter nextFilter, IoSession session, IdleStatus status) throws Exception {
+ logger.info("IDLE" + getSessionInfo(session));
+ nextFilter.sessionIdle(session, status);
+ }
+
+ @Override
+ public void sessionClosed(NextFilter nextFilter, IoSession session) throws Exception {
+ logger.info("CLOSED" + getSessionInfo(session));
+ nextFilter.sessionClosed(session);
+ }
+
+ private String getSessionInfo(IoSession session) {
+ StringBuilder builder = new StringBuilder();
+ if (session == null) {
+ return "";
+ }
+ builder.append("[");
+ builder.append("id:").append(session.getId());
+ if (session.getRemoteAddress() != null) {
+ builder.append(" address:").append(session.getRemoteAddress().toString());
+ }
+ builder.append("]");
+ return builder.toString();
+ }
+}
diff --git a/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/handler/CIMNioSocketAcceptor.java b/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/handler/CIMNioSocketAcceptor.java
index 8d275c6..d74b15d 100644
--- a/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/handler/CIMNioSocketAcceptor.java
+++ b/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/handler/CIMNioSocketAcceptor.java
@@ -35,10 +35,10 @@ import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.executor.ExecutorFilter;
import org.apache.mina.filter.keepalive.KeepAliveFilter;
import org.apache.mina.filter.keepalive.KeepAliveMessageFactory;
-import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.DefaultSocketSessionConfig;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+import com.farsunset.cim.sdk.server.filter.CIMLoggingFilter;
import com.farsunset.cim.sdk.server.filter.ServerMessageCodecFactory;
import com.farsunset.cim.sdk.server.model.HeartbeatRequest;
import com.farsunset.cim.sdk.server.model.HeartbeatResponse;
@@ -83,7 +83,7 @@ public class CIMNioSocketAcceptor extends IoHandlerAdapter implements KeepAliveM
acceptor.getFilterChain().addLast("executor", new ExecutorFilter(Executors.newCachedThreadPool()));
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new ServerMessageCodecFactory()));
- acceptor.getFilterChain().addLast("logger", new LoggingFilter());
+ acceptor.getFilterChain().addLast("logger", new CIMLoggingFilter());
acceptor.getFilterChain().addLast("heartbeat", keepAliveFilter);
acceptor.setHandler(this);
diff --git a/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/model/HandshakerResponse.java b/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/model/HandshakerResponse.java
index 9a7364f..9127d5b 100644
--- a/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/model/HandshakerResponse.java
+++ b/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/model/HandshakerResponse.java
@@ -21,7 +21,6 @@
*/
package com.farsunset.cim.sdk.server.model;
-import java.io.UnsupportedEncodingException;
/**
* websocket握手响应结果
@@ -36,12 +35,7 @@ public class HandshakerResponse {
}
public byte[] getBytes() {
- try {
- return toString().getBytes("UTF-8");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- return null;
+ return toString().getBytes();
}
@Override
diff --git a/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/model/HeartbeatResponse.java b/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/model/HeartbeatResponse.java
index 2d23597..faad416 100644
--- a/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/model/HeartbeatResponse.java
+++ b/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/model/HeartbeatResponse.java
@@ -34,7 +34,6 @@ public class HeartbeatResponse implements Serializable {
private static HeartbeatResponse object = new HeartbeatResponse();
private HeartbeatResponse() {
-
}
public static HeartbeatResponse getInstance() {
@@ -44,12 +43,5 @@ public class HeartbeatResponse implements Serializable {
public String toString() {
return TAG;
}
-
- public static void main(String[] a) {
- byte[] data = "CR".getBytes();
- for(byte v: data) {
- System.out.println(v);
- }
- }
-
+
}
diff --git a/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/session/CIMSession.java b/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/session/CIMSession.java
index 4127b15..46588de 100644
--- a/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/session/CIMSession.java
+++ b/cim_for_mina/cim-server-sdk/src/com/farsunset/cim/sdk/server/session/CIMSession.java
@@ -101,7 +101,6 @@ public class CIMSession implements Serializable {
}
public void setLongitude(Double longitude) {
- setAttribute("longitude", longitude);
this.longitude = longitude;
}
@@ -110,7 +109,6 @@ public class CIMSession implements Serializable {
}
public void setLatitude(Double latitude) {
- setAttribute("latitude", latitude);
this.latitude = latitude;
}
@@ -119,7 +117,6 @@ public class CIMSession implements Serializable {
}
public void setLocation(String location) {
- setAttribute("location", location);
this.location = location;
}
@@ -152,7 +149,6 @@ public class CIMSession implements Serializable {
public void setChannel(String channel) {
this.channel = channel;
- setAttribute("channel", channel);
}
public String getDeviceModel() {
@@ -161,14 +157,11 @@ public class CIMSession implements Serializable {
public void setDeviceModel(String deviceModel) {
this.deviceModel = deviceModel;
-
- setAttribute("deviceModel", deviceModel);
}
public void setDeviceId(String deviceId) {
this.deviceId = deviceId;
- setAttribute("deviceId", deviceId);
}
public String getHost() {
@@ -181,7 +174,6 @@ public class CIMSession implements Serializable {
public void setBindTime(Long bindTime) {
this.bindTime = bindTime;
- setAttribute("bindTime", bindTime);
}
public String getClientVersion() {
@@ -190,7 +182,6 @@ public class CIMSession implements Serializable {
public void setClientVersion(String clientVersion) {
this.clientVersion = clientVersion;
- setAttribute("clientVersion", clientVersion);
}
public String getSystemVersion() {
@@ -199,7 +190,6 @@ public class CIMSession implements Serializable {
public void setSystemVersion(String systemVersion) {
this.systemVersion = systemVersion;
- setAttribute("systemVersion", systemVersion);
}
public Long getHeartbeat() {
@@ -213,8 +203,6 @@ public class CIMSession implements Serializable {
public void setHost(String host) {
this.host = host;
-
- setAttribute("host", host);
}
public int getApnsAble() {
@@ -223,7 +211,6 @@ public class CIMSession implements Serializable {
public void setApnsAble(int apnsAble) {
this.apnsAble = apnsAble;
- setAttribute("apnsAble", apnsAble);
}
public int getState() {
@@ -232,7 +219,6 @@ public class CIMSession implements Serializable {
public void setState(int state) {
this.state = state;
- setAttribute("state", state);
}
public void setAttribute(String key, Object value) {
@@ -309,7 +295,6 @@ public class CIMSession implements Serializable {
public void setPackageName(String packageName) {
this.packageName = packageName;
- setAttribute("packageName", apnsAble);
}
public String getPackageName() {
diff --git a/cim_for_netty/cim-boot-server/.classpath b/cim_for_netty/cim-boot-server/.classpath
index 6c81e95..467ef2f 100644
--- a/cim_for_netty/cim-boot-server/.classpath
+++ b/cim_for_netty/cim-boot-server/.classpath
@@ -14,6 +14,5 @@
-
diff --git a/cim_for_netty/cim-boot-server/libs/cim-server-sdk-3.5.jar b/cim_for_netty/cim-boot-server/libs/cim-server-sdk-3.5.jar
new file mode 100644
index 0000000..fb02403
Binary files /dev/null and b/cim_for_netty/cim-boot-server/libs/cim-server-sdk-3.5.jar differ
diff --git a/cim_for_netty/cim-client-android/.idea/misc.xml b/cim_for_netty/cim-client-android/.idea/misc.xml
index 99202cc..c0f68ed 100644
--- a/cim_for_netty/cim-client-android/.idea/misc.xml
+++ b/cim_for_netty/cim-client-android/.idea/misc.xml
@@ -25,7 +25,7 @@
-
+
diff --git a/cim_for_netty/cim-server-sdk/src/com/farsunset/cim/sdk/server/session/CIMSession.java b/cim_for_netty/cim-server-sdk/src/com/farsunset/cim/sdk/server/session/CIMSession.java
index 522ee11..1155df8 100644
--- a/cim_for_netty/cim-server-sdk/src/com/farsunset/cim/sdk/server/session/CIMSession.java
+++ b/cim_for_netty/cim-server-sdk/src/com/farsunset/cim/sdk/server/session/CIMSession.java
@@ -91,7 +91,6 @@ public class CIMSession implements Serializable {
public void setAccount(String account) {
this.account = account;
-
setAttribute(CIMConstant.SESSION_KEY, account);
}
@@ -100,7 +99,6 @@ public class CIMSession implements Serializable {
}
public void setLongitude(Double longitude) {
- setAttribute("longitude", longitude);
this.longitude = longitude;
}
@@ -109,7 +107,6 @@ public class CIMSession implements Serializable {
}
public void setLatitude(Double latitude) {
- setAttribute("latitude", latitude);
this.latitude = latitude;
}
@@ -118,7 +115,6 @@ public class CIMSession implements Serializable {
}
public void setLocation(String location) {
- setAttribute("location", location);
this.location = location;
}
@@ -127,10 +123,7 @@ public class CIMSession implements Serializable {
}
public void setGid(String gid) {
-
this.gid = gid;
-
- setAttribute("gid", gid);
}
public String getNid() {
@@ -151,8 +144,6 @@ public class CIMSession implements Serializable {
public void setChannel(String channel) {
this.channel = channel;
-
- setAttribute("channel", channel);
}
public String getDeviceModel() {
@@ -161,14 +152,10 @@ public class CIMSession implements Serializable {
public void setDeviceModel(String deviceModel) {
this.deviceModel = deviceModel;
-
- setAttribute("deviceModel", deviceModel);
}
public void setDeviceId(String deviceId) {
this.deviceId = deviceId;
-
- setAttribute("deviceId", deviceId);
}
public String getHost() {
@@ -181,7 +168,6 @@ public class CIMSession implements Serializable {
public void setBindTime(Long bindTime) {
this.bindTime = bindTime;
- setAttribute("bindTime", bindTime);
}
public String getClientVersion() {
@@ -190,7 +176,6 @@ public class CIMSession implements Serializable {
public void setClientVersion(String clientVersion) {
this.clientVersion = clientVersion;
- setAttribute("clientVersion", clientVersion);
}
public String getSystemVersion() {
@@ -199,7 +184,6 @@ public class CIMSession implements Serializable {
public void setSystemVersion(String systemVersion) {
this.systemVersion = systemVersion;
- setAttribute("systemVersion", systemVersion);
}
public Long getHeartbeat() {
@@ -213,8 +197,6 @@ public class CIMSession implements Serializable {
public void setHost(String host) {
this.host = host;
-
- setAttribute("host", host);
}
public void setChannel(Channel session) {
@@ -227,7 +209,6 @@ public class CIMSession implements Serializable {
public void setApnsAble(int apnsAble) {
this.apnsAble = apnsAble;
- setAttribute("apnsAble", apnsAble);
}
public int getStatus() {
@@ -236,7 +217,6 @@ public class CIMSession implements Serializable {
public void setStatus(int status) {
this.status = status;
- setAttribute("status", status);
}
public void setAttribute(String key, Object value) {
@@ -269,7 +249,7 @@ public class CIMSession implements Serializable {
}
public boolean write(Object msg) {
- if (session != null) {
+ if (session != null && session.isActive()) {
return session.writeAndFlush(msg).awaitUninterruptibly(5000);
}
@@ -307,7 +287,6 @@ public class CIMSession implements Serializable {
public void setPackageName(String packageName) {
this.packageName = packageName;
- setAttribute("packageName", apnsAble);
}
public String getPackageName() {