diff --git a/cim-boot-server/cim-boot-server.iml b/cim-boot-server/cim-boot-server.iml index 08af5f8..6d0ab4a 100644 --- a/cim-boot-server/cim-boot-server.iml +++ b/cim-boot-server/cim-boot-server.iml @@ -143,6 +143,8 @@ + + diff --git a/cim-boot-server/cim-boot-server.ipr b/cim-boot-server/cim-boot-server.ipr index ba48396..07d4d24 100644 --- a/cim-boot-server/cim-boot-server.ipr +++ b/cim-boot-server/cim-boot-server.ipr @@ -483,6 +483,28 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/cim-boot-server/cim-boot-server.iws b/cim-boot-server/cim-boot-server.iws index 35bf051..6c69322 100644 --- a/cim-boot-server/cim-boot-server.iws +++ b/cim-boot-server/cim-boot-server.iws @@ -8,229 +8,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - @@ -375,6 +146,9 @@ + + + diff --git a/cim-boot-server/libs/cim-server-sdk-netty-4.0.0.jar b/cim-boot-server/libs/cim-server-sdk-netty-4.0.0.jar index 772e0bb..5ccdbd3 100644 Binary files a/cim-boot-server/libs/cim-server-sdk-netty-4.0.0.jar and b/cim-boot-server/libs/cim-server-sdk-netty-4.0.0.jar differ diff --git a/cim-boot-server/src/main/java/com/farsunset/cim/component/handler/ClosedHandler.java b/cim-boot-server/src/main/java/com/farsunset/cim/component/handler/ClosedHandler.java index 8485b64..9886409 100644 --- a/cim-boot-server/src/main/java/com/farsunset/cim/component/handler/ClosedHandler.java +++ b/cim-boot-server/src/main/java/com/farsunset/cim/component/handler/ClosedHandler.java @@ -50,6 +50,10 @@ public class ClosedHandler implements CIMRequestHandler { String uid = channel.attr(ChannelAttr.UID).get(); + if (uid == null){ + return; + } + String nid = channel.attr(ChannelAttr.ID).get(); sessionGroup.remove(channel); diff --git a/cim-server-sdk/src/main/java/com/farsunset/cim/sdk/server/group/SessionGroup.java b/cim-server-sdk/src/main/java/com/farsunset/cim/sdk/server/group/SessionGroup.java index 418631f..71ee845 100644 --- a/cim-server-sdk/src/main/java/com/farsunset/cim/sdk/server/group/SessionGroup.java +++ b/cim-server-sdk/src/main/java/com/farsunset/cim/sdk/server/group/SessionGroup.java @@ -20,9 +20,7 @@ public class SessionGroup extends ConcurrentHashMap> @Override public void operationComplete(ChannelFuture future){ future.removeListener(this); - remove(future.channel()); - } }; @@ -34,6 +32,10 @@ public class SessionGroup extends ConcurrentHashMap> String uid = getKey(channel); + if(uid == null){ + return; + } + Collection collections = getOrDefault(uid,EMPTY_LIST); collections.remove(channel);