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