package org.springblade.modules.webscoket; import io.netty.channel.Channel; import io.netty.channel.ChannelId; import io.netty.channel.group.ChannelGroup; import io.netty.channel.group.DefaultChannelGroup; import io.netty.handler.codec.http.websocketx.TextWebSocketFrame; import io.netty.util.concurrent.GlobalEventExecutor; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; public class ChannelSupervise { private static ChannelGroup GlobalGroup=new DefaultChannelGroup(GlobalEventExecutor.INSTANCE); private static ConcurrentMap ChannelMap=new ConcurrentHashMap(); private static Map map = new HashMap();; public static void addChannel(Channel channel, String name){ GlobalGroup.add(channel); ChannelMap.put(channel.id().asShortText(),channel.id()); map.put(channel.id().asShortText(),name); } public static void removeChannel(Channel channel){ GlobalGroup.remove(channel); ChannelMap.remove(channel.id().asShortText()); map.remove(channel.id().asShortText()); } public static Channel findChannel(String id){ return GlobalGroup.find(ChannelMap.get(id)); } public static String findName(String id){ return map.get(id); } public static void send2All(TextWebSocketFrame tws){ GlobalGroup.writeAndFlush(tws); } }