|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static Map<String, Channel> channelGroup = new ConcurrentHashMap<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void setChannel(String uuid, Channel channel){ | 
|---|
|  |  |  | public static void setChannel(String uuid, Channel channel) { | 
|---|
|  |  |  | // todo 缓存标记 ===>> 分布式系统 | 
|---|
|  |  |  | //        String hostName = SystemProperties.HOST_NAME; | 
|---|
|  |  |  | if (getChannel(uuid) == channel){ | 
|---|
|  |  |  | if (getChannel(uuid) == channel) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | removeChannel(uuid); | 
|---|
|  |  |  | channelGroup.put(uuid, channel); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static Channel getChannel(String uuid){ | 
|---|
|  |  |  | public static Channel getChannel(String uuid) { | 
|---|
|  |  |  | return channelGroup.get(uuid); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void removeChannel(String uuid) { | 
|---|
|  |  |  | Channel channel = getChannel(uuid); | 
|---|
|  |  |  | if (null == channel){ | 
|---|
|  |  |  | if (null == channel) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | channelGroup.remove(uuid); | 
|---|
|  |  |  | channel.close(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static String removeChannel(Channel channel){ | 
|---|
|  |  |  | public static String removeChannel(Channel channel) { | 
|---|
|  |  |  | String key = null; | 
|---|
|  |  |  | for (Map.Entry<String, Channel> entry : channelGroup.entrySet()){ | 
|---|
|  |  |  | if (entry.getValue() == channel){ | 
|---|
|  |  |  | for (Map.Entry<String, Channel> entry : channelGroup.entrySet()) { | 
|---|
|  |  |  | if (entry.getValue() == channel) { | 
|---|
|  |  |  | key = entry.getKey(); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (null != key){ | 
|---|
|  |  |  | if (null != key) { | 
|---|
|  |  |  | channelGroup.remove(key); | 
|---|
|  |  |  | return key; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|