package org.springblade.jfpt.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<String, ChannelId> ChannelMap=new ConcurrentHashMap();
|
private static Map<String, String> map = new HashMap<String, String>();;
|
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);
|
}
|
|
}
|