diff --git a/cim-boot-server/cim-boot-server.iws b/cim-boot-server/cim-boot-server.iws
index 6c69322..4649940 100644
--- a/cim-boot-server/cim-boot-server.iws
+++ b/cim-boot-server/cim-boot-server.iws
@@ -8,10 +8,6 @@
-
-
-
-
@@ -149,6 +145,7 @@
+
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 5ccdbd3..ffcbccf 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-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 71ee845..70adcb6 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
@@ -10,6 +10,7 @@ import io.netty.channel.ChannelFutureListener;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.function.Predicate;
import java.util.stream.Collectors;
public class SessionGroup extends ConcurrentHashMap> {
@@ -71,6 +72,14 @@ public class SessionGroup extends ConcurrentHashMap>
find(key).forEach(channel -> channel.writeAndFlush(message));
}
+ public void write(String key, Message message, Predicate matcher){
+ find(key).stream().filter(matcher).forEach(channel -> channel.writeAndFlush(message));
+ }
+
+ public void write(Message message){
+ this.write(message.getReceiver(),message);
+ }
+
public Collection find(String key){
return this.getOrDefault(key,EMPTY_LIST);
}