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