Browse Source

格式化代码

luoguangyi 3 years ago
parent
commit
f4ba25e124
41 changed files with 406 additions and 245 deletions
  1. 7 7
      src/main/java/com/persagy/iottransfer/client/IotClient.java
  2. 12 12
      src/main/java/com/persagy/iottransfer/client/IotClientReceiveMessageThread.java
  3. 1 0
      src/main/java/com/persagy/iottransfer/communication/entity/Packet.java
  4. 2 0
      src/main/java/com/persagy/iottransfer/communication/mina/codec/MinaCodecFactory.java
  5. 1 0
      src/main/java/com/persagy/iottransfer/communication/mina/codec/MinaPacketDecoder.java
  6. 2 0
      src/main/java/com/persagy/iottransfer/communication/mina/codec/MinaPacketEncoder.java
  7. 7 0
      src/main/java/com/persagy/iottransfer/communication/mina/tcp/client/TCPClientIoHandler.java
  8. 14 7
      src/main/java/com/persagy/iottransfer/communication/mina/tcp/client/TCPClientManager.java
  9. 14 6
      src/main/java/com/persagy/iottransfer/communication/mina/tcp/server/TCPServerIoHandler.java
  10. 22 12
      src/main/java/com/persagy/iottransfer/communication/mina/tcp/server/TCPServerManager.java
  11. 7 0
      src/main/java/com/persagy/iottransfer/communication/mina/udp/client/UDPClientIoHandler.java
  12. 14 5
      src/main/java/com/persagy/iottransfer/communication/mina/udp/client/UDPClientManager.java
  13. 7 0
      src/main/java/com/persagy/iottransfer/communication/mina/udp/server/UDPServerIoHandler.java
  14. 14 4
      src/main/java/com/persagy/iottransfer/communication/mina/udp/server/UDPServerManager.java
  15. 5 0
      src/main/java/com/persagy/iottransfer/communication/netty/tcp/client/NettyTCPClientHandler.java
  16. 14 1
      src/main/java/com/persagy/iottransfer/communication/netty/tcp/client/NettyTCPClientManager.java
  17. 5 0
      src/main/java/com/persagy/iottransfer/communication/netty/tcp/server/NettyTCPServerHandler.java
  18. 14 5
      src/main/java/com/persagy/iottransfer/communication/netty/tcp/server/NettyTCPServerManager.java
  19. 5 0
      src/main/java/com/persagy/iottransfer/communication/netty/udp/client/NettyUDPClientHandler.java
  20. 14 5
      src/main/java/com/persagy/iottransfer/communication/netty/udp/client/NettyUDPClientManager.java
  21. 5 0
      src/main/java/com/persagy/iottransfer/communication/netty/udp/server/NettyUDPServerHandler.java
  22. 14 4
      src/main/java/com/persagy/iottransfer/communication/netty/udp/server/NettyUDPServerManager.java
  23. 13 6
      src/main/java/com/persagy/iottransfer/communication/nio/tcp/client/NIOTCPClientManager.java
  24. 1 0
      src/main/java/com/persagy/iottransfer/communication/nio/tcp/client/NIOTCPClientThread.java
  25. 16 7
      src/main/java/com/persagy/iottransfer/communication/nio/tcp/server/NIOTCPServerManager.java
  26. 1 0
      src/main/java/com/persagy/iottransfer/communication/nio/tcp/server/NIOTCPServerThread.java
  27. 15 6
      src/main/java/com/persagy/iottransfer/communication/nio/udp/client/NIOUDPClientManager.java
  28. 1 0
      src/main/java/com/persagy/iottransfer/communication/nio/udp/client/NIOUDPClientThread.java
  29. 17 7
      src/main/java/com/persagy/iottransfer/communication/nio/udp/server/NIOUDPServerManager.java
  30. 1 0
      src/main/java/com/persagy/iottransfer/communication/nio/udp/server/NIOUDPServerThread.java
  31. 4 4
      src/main/java/com/persagy/iottransfer/communication/util/AESHelper.java
  32. 2 2
      src/main/java/com/persagy/iottransfer/communication/util/ExceptionUtil.java
  33. 6 7
      src/main/java/com/persagy/iottransfer/config/ProjectClent.java
  34. 1 2
      src/main/java/com/persagy/iottransfer/controller/HelloWorld.java
  35. 2 1
      src/main/java/com/persagy/iottransfer/init/DaemonThread.java
  36. 100 105
      src/main/java/com/persagy/iottransfer/init/alibabaiotgateway.java
  37. 4 5
      src/main/java/com/persagy/iottransfer/kafka/KafkaConsumerCloud2Edge.java
  38. 6 8
      src/main/java/com/persagy/iottransfer/kafka/KafkaConsumerEdge2Cloud.java
  39. 1 1
      src/main/java/com/persagy/iottransfer/kafka/KafkaProducer.java
  40. 1 2
      src/main/java/com/persagy/iottransfer/server/IotServer.java
  41. 14 14
      src/main/java/com/persagy/iottransfer/server/IotServerReceiveMessageThread.java

+ 7 - 7
src/main/java/com/persagy/iottransfer/client/IotClient.java

@@ -19,8 +19,8 @@ import java.util.concurrent.ConcurrentHashMap;
 @Service
 public class IotClient {
     //项目ID和clientManager映射
-    public static final Map<String,IClientManager> clientproject2CollectManagerMap = new ConcurrentHashMap<>();
-    public static final Map<String,IClientManager> clientproject2ControlManagerMap = new ConcurrentHashMap<>();
+    public static final Map<String, IClientManager> CLIENT_PROJECT_2_COLLECT_MANAGER_MAP = new ConcurrentHashMap<>();
+    public static final Map<String, IClientManager> CLIENT_PROJECT_2_CONTROL_MANAGER_MAP = new ConcurrentHashMap<>();
     @Autowired
     IotProperties iotProperties;
 
@@ -29,7 +29,7 @@ public class IotClient {
 
     public void init() {
         //直接连接云端(iot-collect/iot-control)的一侧
-        if(cloud){
+        if (cloud) {
             for (IotProperties.Client client : iotProperties.getClients()) {
                 for (IotProperties.Project project : iotProperties.projects) {
                     IClientManager clientManager;
@@ -41,11 +41,11 @@ public class IotClient {
                     }
                     clientManager.hasRemark(100);
                     clientManager.Start();
-                    if(client.getServer_is_iot_collect()){
-                        clientproject2CollectManagerMap.put(project.getId(),clientManager);
+                    if (client.getServer_is_iot_collect()) {
+                        CLIENT_PROJECT_2_COLLECT_MANAGER_MAP.put(project.getId(), clientManager);
                     }
-                    if(client.getServer_is_iot_control()){
-                        clientproject2ControlManagerMap.put(project.getId(),clientManager);
+                    if (client.getServer_is_iot_control()) {
+                        CLIENT_PROJECT_2_CONTROL_MANAGER_MAP.put(project.getId(), clientManager);
                     }
                 }
             }

+ 12 - 12
src/main/java/com/persagy/iottransfer/client/IotClientReceiveMessageThread.java

@@ -29,35 +29,35 @@ public class IotClientReceiveMessageThread implements Runnable {
     public void run() {
         try {
             System.out.println("--init IotClientReceiveMessageThread start--");
-            for (Map.Entry<String, IClientManager> entry : IotClient.clientproject2CollectManagerMap.entrySet()) {
+            for (Map.Entry<String, IClientManager> entry : IotClient.CLIENT_PROJECT_2_COLLECT_MANAGER_MAP.entrySet()) {
 
-                ThreadUtil.execAsync(()->{
-                    while (true){
+                ThreadUtil.execAsync(() -> {
+                    while (true) {
                         try {
                             Packet packet = entry.getValue().takeRece();
                             String project = entry.getKey();
-                            PacketEntity packetEntity = new PacketEntity(project,packet);
+                            PacketEntity packetEntity = new PacketEntity(project, packet);
                             kafkaProducer.sendFromcollect2edge(packetEntity);
                         } catch (Exception e) {
-                            log.error(e.getMessage(),e);
+                            log.error(e.getMessage(), e);
                         }
                     }
-                },true);
+                }, true);
 
             }
-            for (Map.Entry<String, IClientManager> entry : IotClient.clientproject2ControlManagerMap.entrySet()) {
-                ThreadUtil.execAsync(()->{
-                    while (true){
+            for (Map.Entry<String, IClientManager> entry : IotClient.CLIENT_PROJECT_2_CONTROL_MANAGER_MAP.entrySet()) {
+                ThreadUtil.execAsync(() -> {
+                    while (true) {
                         try {
                             Packet packet = entry.getValue().takeRece();
                             String project = entry.getKey();
-                            PacketEntity packetEntity = new PacketEntity(project,packet);
+                            PacketEntity packetEntity = new PacketEntity(project, packet);
                             kafkaProducer.sendFromcontrol2edge(packetEntity);
                         } catch (Exception e) {
-                            log.error(e.getMessage(),e);
+                            log.error(e.getMessage(), e);
                         }
                     }
-                },true);
+                }, true);
 
             }
             System.out.println("--init IotClientReceiveMessageThread end--");

+ 1 - 0
src/main/java/com/persagy/iottransfer/communication/entity/Packet.java

@@ -5,6 +5,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.util.Date;
+
 @Data
 @NoArgsConstructor
 public class Packet {

+ 2 - 0
src/main/java/com/persagy/iottransfer/communication/mina/codec/MinaCodecFactory.java

@@ -56,10 +56,12 @@ public class MinaCodecFactory implements ProtocolCodecFactory {
         }
     }
 
+    @Override
     public ProtocolEncoder getEncoder(IoSession ioSession) throws Exception {
         return encoder;
     }
 
+    @Override
     public ProtocolDecoder getDecoder(IoSession ioSession) throws Exception {
         return decoder;
     }

+ 1 - 0
src/main/java/com/persagy/iottransfer/communication/mina/codec/MinaPacketDecoder.java

@@ -78,6 +78,7 @@ public class MinaPacketDecoder extends CumulativeProtocolDecoder {
                 this.separateBytes, this.prefix, this.suffix, this.prefixBytes, this.suffixBytes);
     }
 
+    @Override
     public boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {
         int remainingLength = in.remaining();
         byte[] remainingBytes = new byte[remainingLength];

+ 2 - 0
src/main/java/com/persagy/iottransfer/communication/mina/codec/MinaPacketEncoder.java

@@ -73,6 +73,7 @@ public class MinaPacketEncoder implements ProtocolEncoder {
                 this.separateBytes, this.prefix, this.suffix, this.prefixBytes, this.suffixBytes);
     }
 
+    @Override
     public synchronized void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception {
         Packet request = (Packet) message;
         byte[] comm_bytes = this.encoder.encode(request);
@@ -83,6 +84,7 @@ public class MinaPacketEncoder implements ProtocolEncoder {
         out.write(buffer);
     }
 
+    @Override
     public void dispose(IoSession session) throws Exception {
         // nothing to dispose
     }

+ 7 - 0
src/main/java/com/persagy/iottransfer/communication/mina/tcp/client/TCPClientIoHandler.java

@@ -15,10 +15,12 @@ public class TCPClientIoHandler extends IoHandlerAdapter {
         this.manager = manager;
     }
 
+    @Override
     public void sessionCreated(IoSession session) throws Exception {
         log.info(this.manager.Name() + "\tsessionCreated");
     }
 
+    @Override
     public void sessionOpened(IoSession session) throws Exception {
         this.manager.SetSessionClosed(false);
         log.warn(this.manager.Name() + "\tsessionOpened");
@@ -27,6 +29,7 @@ public class TCPClientIoHandler extends IoHandlerAdapter {
         }
     }
 
+    @Override
     public void sessionClosed(IoSession session) throws Exception {
         this.manager.SetSessionClosed(true);
         log.warn(this.manager.Name() + "\tsessionClosed");
@@ -37,12 +40,14 @@ public class TCPClientIoHandler extends IoHandlerAdapter {
         }
     }
 
+    @Override
     public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
         if (this.manager.handlerManager != null) {
             this.manager.handlerManager.exceptionCaught(cause);
         }
     }
 
+    @Override
     public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
         log.warn(this.manager.Name() + "\tsessionIdle");
         if (this.manager.handlerManager != null) {
@@ -51,6 +56,7 @@ public class TCPClientIoHandler extends IoHandlerAdapter {
         session.close(true);
     }
 
+    @Override
     public void messageReceived(IoSession session, Object message) throws Exception {
         Packet packet = (Packet) message;
         this.manager.AppendToRece(packet);
@@ -61,6 +67,7 @@ public class TCPClientIoHandler extends IoHandlerAdapter {
         }
     }
 
+    @Override
     public void messageSent(IoSession session, Object message) throws Exception {
         Packet packet = (Packet) message;
         if (this.manager.encoding != null) {

+ 14 - 7
src/main/java/com/persagy/iottransfer/communication/mina/tcp/client/TCPClientManager.java

@@ -25,6 +25,7 @@ import java.net.InetSocketAddress;
 @NoArgsConstructor
 @AllArgsConstructor
 public class TCPClientManager implements IClientManager {
+    public final PacketBuffer<Packet> receList = new PacketBuffer<Packet>();
     String projectId;
     IotProperties.Client client;
     String ip;
@@ -40,23 +41,16 @@ public class TCPClientManager implements IClientManager {
     String aes_password;
     boolean compress = false;
     int Max_size = 1000;
-
     boolean separate;
     boolean separateBytes;
     byte prefix;
     byte suffix;
     byte[] prefixBytes;
     byte[] suffixBytes;
-
     Integer IdleTime = null;
-
     boolean sessionClosed = false;
-
     IClientHandler handlerManager;
     ILogger logger;
-
-    public final PacketBuffer<Packet> receList = new PacketBuffer<Packet>();
-
     IoSession session;
     IoConnector connector;
     String localAddress = "()";
@@ -299,6 +293,7 @@ public class TCPClientManager implements IClientManager {
         this.IdleTime = IdleTime;
     }
 
+    @Override
     public void setHandlerManager(IClientHandler handlerManager) {
         this.handlerManager = handlerManager;
     }
@@ -311,22 +306,28 @@ public class TCPClientManager implements IClientManager {
     public String getProjectId() {
         return this.projectId;
     }
+
     @Override
     public IotProperties.Client getClient() {
         return this.client;
     }
+
+    @Override
     public String Name() {
         return "TCP Client " + this.ip + ":" + this.port + localAddress;
     }
 
+    @Override
     public synchronized boolean IsSessionClosed() {
         return this.sessionClosed;
     }
 
+    @Override
     public synchronized void SetSessionClosed(boolean value) {
         this.sessionClosed = value;
     }
 
+    @Override
     public synchronized void Start() {
         if (this.session == null) {
             try {
@@ -379,6 +380,7 @@ public class TCPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public synchronized void Stop() {
         for (int i = 0; i < this.remark_count; i++) {
             this.receList.offer(new Packet(), Integer.MAX_VALUE);
@@ -394,6 +396,7 @@ public class TCPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public void AppendToSend(Packet MyPackage) {
         if (this.session == null) {
             this.Start();
@@ -407,20 +410,24 @@ public class TCPClientManager implements IClientManager {
         this.receList.offer(MyPackage, this.Max_size);
     }
 
+    @Override
     public Packet PopRece() {
         Packet MyPackage = this.receList.poll();
         return MyPackage;
     }
 
+    @Override
     public Packet takeRece() throws InterruptedException {
         Packet MyPackage = this.receList.take();
         return MyPackage;
     }
 
+    @Override
     public int ReceBufferSize() {
         return this.receList.BufferSize();
     }
 
+    @Override
     public synchronized void hasRemark(int count) {
         remark_count = count;
     }

+ 14 - 6
src/main/java/com/persagy/iottransfer/communication/mina/tcp/server/TCPServerIoHandler.java

@@ -2,7 +2,6 @@ package com.persagy.iottransfer.communication.mina.tcp.server;
 
 import com.persagy.iottransfer.communication.entity.Packet;
 import com.persagy.iottransfer.communication.util.HexToByte;
-import com.persagy.iottransfer.config.IotProperties;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.mina.core.service.IoHandlerAdapter;
 import org.apache.mina.core.session.IdleStatus;
@@ -18,12 +17,15 @@ public class TCPServerIoHandler extends IoHandlerAdapter {
     public TCPServerIoHandler(TCPServerManager manager) {
         this.manager = manager;
     }
+
+    @Override
     public void sessionCreated(IoSession session) throws Exception {
         SocketAddress socketAddress = session.getRemoteAddress();
         String remoteAddress = socketAddress.toString();
         log.info(this.manager.Name() + "\tsessionCreated\t" + remoteAddress);
     }
 
+    @Override
     public void sessionOpened(IoSession session) throws Exception {
         SocketAddress socketAddress = session.getRemoteAddress();
         String remoteAddress = socketAddress.toString();
@@ -37,6 +39,7 @@ public class TCPServerIoHandler extends IoHandlerAdapter {
         }
     }
 
+    @Override
     public void sessionClosed(IoSession session) throws Exception {
         SocketAddress socketAddress = session.getRemoteAddress();
         String remoteAddress = socketAddress.toString();
@@ -48,12 +51,14 @@ public class TCPServerIoHandler extends IoHandlerAdapter {
         }
     }
 
+    @Override
     public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
         if (this.manager.handlerManager != null) {
             this.manager.handlerManager.exceptionCaught(session.getRemoteAddress(), cause);
         }
     }
 
+    @Override
     public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
         SocketAddress socketAddress = session.getRemoteAddress();
         String remoteAddress = socketAddress.toString();
@@ -64,23 +69,26 @@ public class TCPServerIoHandler extends IoHandlerAdapter {
         session.close(true);
     }
 
+    @Override
     public void messageReceived(IoSession session, Object message) throws Exception {
         Packet packet = (Packet) message;
         SocketAddress socketAddress = session.getRemoteAddress();
         this.manager.AppendToRece(socketAddress.toString(), packet);
         try {
-            getProject(packet.packetString,socketAddress);
+            getProject(packet.packetString, socketAddress);
         } catch (Exception e) {
-            log.error(e.getMessage(),e);
+            log.error(e.getMessage(), e);
         }
     }
-    public  void getProject(String message,SocketAddress socketAddress){
-        if(this.manager.project2IoSessionMap.containsKey(message.substring(0,10))){
+
+    public void getProject(String message, SocketAddress socketAddress) {
+        if (this.manager.project2IoSessionMap.containsKey(message.substring(0, 10))) {
             return;
         }
-        this.manager.project2IoSessionMap.put(message.substring(0,10),socketAddress.toString());
+        this.manager.project2IoSessionMap.put(message.substring(0, 10), socketAddress.toString());
     }
 
+    @Override
     public void messageSent(IoSession session, Object message) throws Exception {
         Packet packet = (Packet) message;
         SocketAddress socketAddress = session.getRemoteAddress();

+ 22 - 12
src/main/java/com/persagy/iottransfer/communication/mina/tcp/server/TCPServerManager.java

@@ -26,6 +26,12 @@ import java.util.Map;
 @NoArgsConstructor
 @AllArgsConstructor
 public class TCPServerManager implements IServerManager {
+    public final Map<String, Date> connectDateMap = new HashMap<String, Date>();
+    public final PacketBuffer<PacketEntity> receList = new PacketBuffer<PacketEntity>();
+    //address-IoSession
+    public final Map<String, IoSession> socketMap = new HashMap<String, IoSession>();
+    //project-address
+    public final Map<String, String> project2IoSessionMap = new HashMap<String, String>();
     String ip;
     int port;
     String encoding;
@@ -39,27 +45,16 @@ public class TCPServerManager implements IServerManager {
     String aes_password;
     boolean compress = false;
     int Max_size = 1000;
-
     boolean separate;
     boolean separateBytes;
     byte prefix;
     byte suffix;
     byte[] prefixBytes;
     byte[] suffixBytes;
-
     Integer IdleTime = null;
-
     IServerHandler handlerManager;
     ILogger logger;
-
-    public final Map<String, Date> connectDateMap = new HashMap<String, Date>();
-    public final PacketBuffer<PacketEntity> receList = new PacketBuffer<PacketEntity>();
-
     NioSocketAcceptor acceptor;
-    //address-IoSession
-    public final Map<String, IoSession> socketMap = new HashMap<String, IoSession>();
-    //project-address
-    public final Map<String, String> project2IoSessionMap = new HashMap<String, String>();
     int remark_count = 0;
 
     public TCPServerManager(String ip, int port, String encoding, int Max_size) {
@@ -296,6 +291,7 @@ public class TCPServerManager implements IServerManager {
         this.IdleTime = IdleTime;
     }
 
+    @Override
     public void setHandlerManager(IServerHandler handlerManager) {
         this.handlerManager = handlerManager;
     }
@@ -304,10 +300,12 @@ public class TCPServerManager implements IServerManager {
         this.logger = logger;
     }
 
+    @Override
     public String Name() {
         return "TCP Server " + this.ip + ":" + this.port;
     }
 
+    @Override
     public synchronized void Start() {
         if (this.acceptor == null) {
             try {
@@ -350,6 +348,7 @@ public class TCPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public synchronized void Stop() {
         for (int i = 0; i < this.remark_count; i++) {
             this.receList.offer(new PacketEntity(), Integer.MAX_VALUE);
@@ -369,14 +368,17 @@ public class TCPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public synchronized void AllowJustSend_UDP(boolean allow) {
 
     }
 
+    @Override
     public synchronized String[] GetClientAddresss() {
         return this.connectDateMap.keySet().toArray(new String[0]);
     }
 
+    @Override
     public synchronized Date GetConnectTime(String clientAddress) {
         if (this.connectDateMap.containsKey(clientAddress)) {
             return this.connectDateMap.get(clientAddress);
@@ -391,21 +393,24 @@ public class TCPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public void AppendToSend(String clientAddress, Packet MyPackage) {
         IoSession session = this.socketMap.get(clientAddress);
         if (session != null) {
             session.write(MyPackage);
         }
     }
+
     public void AppendToSendByProject(String project, Packet MyPackage) {
         String clientAddresss = this.project2IoSessionMap.get(project);
-        if(clientAddresss != null){
+        if (clientAddresss != null) {
             IoSession session = this.socketMap.get(clientAddresss);
             if (session != null) {
                 session.write(MyPackage);
             }
         }
     }
+
     public synchronized boolean ContainsSocket(String clientAddress) {
         return this.socketMap.containsKey(clientAddress);
     }
@@ -417,20 +422,24 @@ public class TCPServerManager implements IServerManager {
         this.receList.offer(entity, this.Max_size);
     }
 
+    @Override
     public PacketEntity PopRece() {
         PacketEntity entity = this.receList.poll();
         return entity;
     }
 
+    @Override
     public PacketEntity takeRece() throws InterruptedException {
         PacketEntity entity = this.receList.take();
         return entity;
     }
 
+    @Override
     public int ReceBufferSize() {
         return this.receList.BufferSize();
     }
 
+    @Override
     public synchronized void closeClient(String clientAddress) {
         if (this.socketMap.containsKey(clientAddress)) {
             IoSession session = this.socketMap.get(clientAddress);
@@ -439,6 +448,7 @@ public class TCPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public synchronized void hasRemark(int count) {
         remark_count = count;
     }

+ 7 - 0
src/main/java/com/persagy/iottransfer/communication/mina/udp/client/UDPClientIoHandler.java

@@ -15,10 +15,12 @@ public class UDPClientIoHandler extends IoHandlerAdapter {
         this.manager = manager;
     }
 
+    @Override
     public void sessionCreated(IoSession session) throws Exception {
         log.info(this.manager.Name() + "\tsessionCreated");
     }
 
+    @Override
     public void sessionOpened(IoSession session) throws Exception {
         this.manager.SetSessionClosed(false);
         log.warn(this.manager.Name() + "\tsessionOpened");
@@ -27,6 +29,7 @@ public class UDPClientIoHandler extends IoHandlerAdapter {
         }
     }
 
+    @Override
     public void sessionClosed(IoSession session) throws Exception {
         this.manager.SetSessionClosed(true);
         log.warn(this.manager.Name() + "\tsessionClosed");
@@ -37,12 +40,14 @@ public class UDPClientIoHandler extends IoHandlerAdapter {
         }
     }
 
+    @Override
     public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
         if (this.manager.handlerManager != null) {
             this.manager.handlerManager.exceptionCaught(cause);
         }
     }
 
+    @Override
     public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
         log.warn(this.manager.Name() + "\tsessionIdle");
         if (this.manager.handlerManager != null) {
@@ -51,6 +56,7 @@ public class UDPClientIoHandler extends IoHandlerAdapter {
         session.close(true);
     }
 
+    @Override
     public void messageReceived(IoSession session, Object message) throws Exception {
         Packet packet = (Packet) message;
         this.manager.AppendToRece(packet);
@@ -61,6 +67,7 @@ public class UDPClientIoHandler extends IoHandlerAdapter {
         }
     }
 
+    @Override
     public void messageSent(IoSession session, Object message) throws Exception {
         Packet packet = (Packet) message;
         if (this.manager.encoding != null) {

+ 14 - 5
src/main/java/com/persagy/iottransfer/communication/mina/udp/client/UDPClientManager.java

@@ -24,6 +24,7 @@ import java.net.InetSocketAddress;
 @NoArgsConstructor
 @AllArgsConstructor
 public class UDPClientManager implements IClientManager {
+    public final PacketBuffer<Packet> receList = new PacketBuffer<Packet>();
     String projectId;
     IotProperties.Client client;
     String ip;
@@ -34,14 +35,9 @@ public class UDPClientManager implements IClientManager {
     String aes_password;
     boolean compress = false;
     int Max_size = 1000;
-
     boolean sessionClosed = false;
-
     IClientHandler handlerManager;
     ILogger logger;
-
-    public final PacketBuffer<Packet> receList = new PacketBuffer<Packet>();
-
     IoSession session;
     IoConnector connector;
     int remark_count = 0;
@@ -93,6 +89,7 @@ public class UDPClientManager implements IClientManager {
         this.Max_size = Max_size;
     }
 
+    @Override
     public void setHandlerManager(IClientHandler handlerManager) {
         this.handlerManager = handlerManager;
     }
@@ -105,10 +102,13 @@ public class UDPClientManager implements IClientManager {
     public String getProjectId() {
         return this.projectId;
     }
+
     @Override
     public IotProperties.Client getClient() {
         return this.client;
     }
+
+    @Override
     public String Name() {
         if (this.ip == null) {
             return "UDP Client " + this.targetIp + ":" + this.targetPort;
@@ -117,14 +117,17 @@ public class UDPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public synchronized boolean IsSessionClosed() {
         return this.sessionClosed;
     }
 
+    @Override
     public synchronized void SetSessionClosed(boolean value) {
         this.sessionClosed = value;
     }
 
+    @Override
     public synchronized void Start() {
         if (this.session == null) {
             try {
@@ -167,6 +170,7 @@ public class UDPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public synchronized void Stop() {
         for (int i = 0; i < this.remark_count; i++) {
             this.receList.offer(new Packet(), Integer.MAX_VALUE);
@@ -182,6 +186,7 @@ public class UDPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public void AppendToSend(Packet MyPackage) {
         if (this.session == null) {
             this.Start();
@@ -195,20 +200,24 @@ public class UDPClientManager implements IClientManager {
         this.receList.offer(MyPackage, this.Max_size);
     }
 
+    @Override
     public Packet PopRece() {
         Packet entity = this.receList.poll();
         return entity;
     }
 
+    @Override
     public Packet takeRece() throws InterruptedException {
         Packet MyPackage = this.receList.take();
         return MyPackage;
     }
 
+    @Override
     public int ReceBufferSize() {
         return this.receList.BufferSize();
     }
 
+    @Override
     public synchronized void hasRemark(int count) {
         remark_count = count;
     }

+ 7 - 0
src/main/java/com/persagy/iottransfer/communication/mina/udp/server/UDPServerIoHandler.java

@@ -18,12 +18,14 @@ public class UDPServerIoHandler extends IoHandlerAdapter {
         this.manager = manager;
     }
 
+    @Override
     public void sessionCreated(IoSession session) throws Exception {
         SocketAddress socketAddress = session.getRemoteAddress();
         String remoteAddress = socketAddress.toString();
         log.info(this.manager.Name() + "\tsessionCreated\t" + remoteAddress);
     }
 
+    @Override
     public void sessionOpened(IoSession session) throws Exception {
         SocketAddress socketAddress = session.getRemoteAddress();
         String remoteAddress = socketAddress.toString();
@@ -37,6 +39,7 @@ public class UDPServerIoHandler extends IoHandlerAdapter {
         }
     }
 
+    @Override
     public void sessionClosed(IoSession session) throws Exception {
         SocketAddress socketAddress = session.getRemoteAddress();
         String remoteAddress = socketAddress.toString();
@@ -48,12 +51,14 @@ public class UDPServerIoHandler extends IoHandlerAdapter {
         }
     }
 
+    @Override
     public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
         if (this.manager.handlerManager != null) {
             this.manager.handlerManager.exceptionCaught(session.getRemoteAddress(), cause);
         }
     }
 
+    @Override
     public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
         SocketAddress socketAddress = session.getRemoteAddress();
         String remoteAddress = socketAddress.toString();
@@ -63,6 +68,7 @@ public class UDPServerIoHandler extends IoHandlerAdapter {
         }
     }
 
+    @Override
     public void messageReceived(IoSession session, Object message) throws Exception {
         Packet packet = (Packet) message;
         this.manager.AppendToRece(session, packet);
@@ -75,6 +81,7 @@ public class UDPServerIoHandler extends IoHandlerAdapter {
         }
     }
 
+    @Override
     public void messageSent(IoSession session, Object message) throws Exception {
         Packet packet = (Packet) message;
         SocketAddress socketAddress = session.getRemoteAddress();

+ 14 - 4
src/main/java/com/persagy/iottransfer/communication/mina/udp/server/UDPServerManager.java

@@ -26,19 +26,16 @@ import java.util.Map;
 @NoArgsConstructor
 @AllArgsConstructor
 public class UDPServerManager implements IServerManager {
+    public final PacketBuffer<PacketEntity> receList = new PacketBuffer<PacketEntity>();
     String ip;
     int port;
     String encoding;
     String aes_password;
     boolean compress = false;
     int Max_size = 1000;
-
     IServerHandler handlerManager;
     ILogger logger;
-
     Map<String, Date> connectDateMap = new HashMap<String, Date>();
-    public final PacketBuffer<PacketEntity> receList = new PacketBuffer<PacketEntity>();
-
     boolean allowJustSend = false;
 
     NioDatagramAcceptor acceptor;
@@ -69,6 +66,7 @@ public class UDPServerManager implements IServerManager {
         this.Max_size = Max_size;
     }
 
+    @Override
     public void setHandlerManager(IServerHandler handlerManager) {
         this.handlerManager = handlerManager;
     }
@@ -77,10 +75,12 @@ public class UDPServerManager implements IServerManager {
         this.logger = logger;
     }
 
+    @Override
     public String Name() {
         return "UDP Server " + this.ip + ":" + this.port;
     }
 
+    @Override
     public synchronized void Start() {
         if (this.acceptor == null) {
             try {
@@ -104,6 +104,7 @@ public class UDPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public synchronized void Stop() {
         for (int i = 0; i < this.remark_count; i++) {
             this.receList.offer(new PacketEntity(), Integer.MAX_VALUE);
@@ -123,14 +124,17 @@ public class UDPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public synchronized void AllowJustSend_UDP(boolean allow) {
         this.allowJustSend = allow;
     }
 
+    @Override
     public synchronized String[] GetClientAddresss() {
         return this.connectDateMap.keySet().toArray(new String[0]);
     }
 
+    @Override
     public synchronized Date GetConnectTime(String clientAddress) {
         if (this.connectDateMap.containsKey(clientAddress)) {
             return this.connectDateMap.get(clientAddress);
@@ -145,6 +149,7 @@ public class UDPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public void AppendToSend(String clientAddress, Packet MyPackage) {
         if (this.allowJustSend && !this.socketMap.containsKey(clientAddress)) {
             int index = clientAddress.indexOf(':');
@@ -175,24 +180,29 @@ public class UDPServerManager implements IServerManager {
         this.receList.offer(entity, this.Max_size);
     }
 
+    @Override
     public PacketEntity PopRece() {
         PacketEntity entity = this.receList.poll();
         return entity;
     }
 
+    @Override
     public PacketEntity takeRece() throws InterruptedException {
         PacketEntity entity = this.receList.take();
         return entity;
     }
 
+    @Override
     public int ReceBufferSize() {
         return this.receList.BufferSize();
     }
 
+    @Override
     public synchronized void closeClient(String clientAddress) {
         this.socketMap.remove(clientAddress);
     }
 
+    @Override
     public synchronized void hasRemark(int count) {
         remark_count = count;
     }

+ 5 - 0
src/main/java/com/persagy/iottransfer/communication/netty/tcp/client/NettyTCPClientHandler.java

@@ -15,6 +15,7 @@ public class NettyTCPClientHandler extends ChannelInboundHandlerAdapter {
         this.manager = manager;
     }
 
+    @Override
     public void channelRegistered(ChannelHandlerContext ctx) throws Exception {
         super.channelRegistered(ctx);
 
@@ -25,6 +26,7 @@ public class NettyTCPClientHandler extends ChannelInboundHandlerAdapter {
         }
     }
 
+    @Override
     public void channelUnregistered(ChannelHandlerContext ctx) throws Exception {
         super.channelUnregistered(ctx);
 
@@ -36,6 +38,7 @@ public class NettyTCPClientHandler extends ChannelInboundHandlerAdapter {
         }
     }
 
+    @Override
     public void channelRead(ChannelHandlerContext ctx, Object message) throws Exception {
         Packet packet = (Packet) message;
         this.manager.AppendToRece(packet);
@@ -46,12 +49,14 @@ public class NettyTCPClientHandler extends ChannelInboundHandlerAdapter {
         }
     }
 
+    @Override
     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
         if (this.manager.handlerManager != null) {
             this.manager.handlerManager.exceptionCaught(cause);
         }
     }
 
+    @Override
     public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
         super.userEventTriggered(ctx, evt);
 

+ 14 - 1
src/main/java/com/persagy/iottransfer/communication/netty/tcp/client/NettyTCPClientManager.java

@@ -14,6 +14,7 @@ import java.net.InetSocketAddress;
 
 @Slf4j
 public class NettyTCPClientManager implements IClientManager {
+    public final PacketBuffer<Packet> receList = new PacketBuffer<Packet>();
     private final EventLoopGroup workerGroup = new NioEventLoopGroup(1);
     String projectId;
     IotProperties.Client client;
@@ -40,7 +41,6 @@ public class NettyTCPClientManager implements IClientManager {
     boolean sessionClosed = false;
     IClientHandler handlerManager;
     ILogger logger;
-    public final PacketBuffer<Packet> receList = new PacketBuffer<Packet>();
     boolean started = false;
     String localAddress = "()";
     int remark_count = 0;
@@ -282,6 +282,7 @@ public class NettyTCPClientManager implements IClientManager {
         this.IdleTime = IdleTime;
     }
 
+    @Override
     public void setHandlerManager(IClientHandler handlerManager) {
         this.handlerManager = handlerManager;
     }
@@ -290,18 +291,22 @@ public class NettyTCPClientManager implements IClientManager {
         this.logger = logger;
     }
 
+    @Override
     public String Name() {
         return "TCP Client " + this.ip + ":" + this.port + localAddress;
     }
 
+    @Override
     public synchronized boolean IsSessionClosed() {
         return this.sessionClosed;
     }
 
+    @Override
     public synchronized void SetSessionClosed(boolean value) {
         this.sessionClosed = value;
     }
 
+    @Override
     public synchronized void Start() {
         if (started) {
             return;
@@ -324,6 +329,7 @@ public class NettyTCPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public synchronized void Stop() {
         for (int i = 0; i < this.remark_count; i++) {
             this.receList.offer(new Packet(), Integer.MAX_VALUE);
@@ -339,6 +345,7 @@ public class NettyTCPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public void AppendToSend(Packet MyPackage) {
         if (!this.started) {
             this.Start();
@@ -359,27 +366,33 @@ public class NettyTCPClientManager implements IClientManager {
         this.receList.offer(MyPackage, this.Max_size);
     }
 
+    @Override
     public Packet PopRece() {
         Packet MyPackage = this.receList.poll();
         return MyPackage;
     }
 
+    @Override
     public Packet takeRece() throws InterruptedException {
         Packet MyPackage = this.receList.take();
         return MyPackage;
     }
 
+    @Override
     public int ReceBufferSize() {
         return this.receList.BufferSize();
     }
 
+    @Override
     public synchronized void hasRemark(int count) {
         remark_count = count;
     }
+
     @Override
     public String getProjectId() {
         return this.projectId;
     }
+
     @Override
     public IotProperties.Client getClient() {
         return this.client;

+ 5 - 0
src/main/java/com/persagy/iottransfer/communication/netty/tcp/server/NettyTCPServerHandler.java

@@ -20,6 +20,7 @@ public class NettyTCPServerHandler extends ChannelInboundHandlerAdapter {
         this.manager = manager;
     }
 
+    @Override
     public void channelRead(ChannelHandlerContext ctx, Object message) throws Exception {
         Packet packet = (Packet) message;
         SocketAddress socketAddress = ctx.channel().remoteAddress();
@@ -32,6 +33,7 @@ public class NettyTCPServerHandler extends ChannelInboundHandlerAdapter {
         }
     }
 
+    @Override
     public void channelRegistered(ChannelHandlerContext ctx) throws Exception {
         super.channelRegistered(ctx);
 
@@ -58,6 +60,7 @@ public class NettyTCPServerHandler extends ChannelInboundHandlerAdapter {
         ctx.pipeline().get(SslHandler.class).handshakeFuture().addListener(new SSLHandshakeListener(this.manager, ctx));
     }
 
+    @Override
     public void channelUnregistered(ChannelHandlerContext ctx) throws Exception {
         super.channelUnregistered(ctx);
 
@@ -71,12 +74,14 @@ public class NettyTCPServerHandler extends ChannelInboundHandlerAdapter {
         }
     }
 
+    @Override
     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
         if (this.manager.handlerManager != null) {
             this.manager.handlerManager.exceptionCaught(ctx.channel().remoteAddress(), cause);
         }
     }
 
+    @Override
     public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
         super.userEventTriggered(ctx, evt);
 

+ 14 - 5
src/main/java/com/persagy/iottransfer/communication/netty/tcp/server/NettyTCPServerManager.java

@@ -17,6 +17,7 @@ import java.util.Map;
 
 @Slf4j
 public class NettyTCPServerManager implements IServerManager {
+    public final PacketBuffer<PacketEntity> receList = new PacketBuffer<PacketEntity>();
     String ip;
     int port;
     String encoding;
@@ -30,21 +31,16 @@ public class NettyTCPServerManager implements IServerManager {
     String aes_password;
     boolean compress = false;
     int Max_size = 1000;
-
     boolean separate;
     boolean separateBytes;
     byte prefix;
     byte suffix;
     byte[] prefixBytes;
     byte[] suffixBytes;
-
     Integer IdleTime = null;
-
     IServerHandler handlerManager;
     ILogger logger;
-
     Map<String, Date> connectDateMap = new HashMap<String, Date>();
-    public final PacketBuffer<PacketEntity> receList = new PacketBuffer<PacketEntity>();
     EventLoopGroup bossGroup = new NioEventLoopGroup(1);
     EventLoopGroup workerGroup = new NioEventLoopGroup();
     Map<String, Channel> socketMap = new HashMap<String, Channel>();
@@ -287,6 +283,7 @@ public class NettyTCPServerManager implements IServerManager {
         this.IdleTime = IdleTime;
     }
 
+    @Override
     public void setHandlerManager(IServerHandler handlerManager) {
         this.handlerManager = handlerManager;
     }
@@ -295,10 +292,12 @@ public class NettyTCPServerManager implements IServerManager {
         this.logger = logger;
     }
 
+    @Override
     public String Name() {
         return "TCP Server " + this.ip + ":" + this.port;
     }
 
+    @Override
     public synchronized void Start() {
         if (this.init) {
             return;
@@ -321,6 +320,7 @@ public class NettyTCPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public void Stop() {
         for (int i = 0; i < this.remark_count; i++) {
             this.receList.offer(new PacketEntity(), Integer.MAX_VALUE);
@@ -336,14 +336,17 @@ public class NettyTCPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public synchronized void AllowJustSend_UDP(boolean allow) {
 
     }
 
+    @Override
     public synchronized String[] GetClientAddresss() {
         return this.connectDateMap.keySet().toArray(new String[0]);
     }
 
+    @Override
     public synchronized Date GetConnectTime(String clientAddress) {
         if (this.connectDateMap.containsKey(clientAddress)) {
             return this.connectDateMap.get(clientAddress);
@@ -358,6 +361,7 @@ public class NettyTCPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public void AppendToSend(String clientAddress, Packet MyPackage) {
         Channel session = this.socketMap.get(clientAddress);
         if (session != null) {
@@ -383,20 +387,24 @@ public class NettyTCPServerManager implements IServerManager {
         this.receList.offer(entity, this.Max_size);
     }
 
+    @Override
     public PacketEntity PopRece() {
         PacketEntity entity = this.receList.poll();
         return entity;
     }
 
+    @Override
     public PacketEntity takeRece() throws InterruptedException {
         PacketEntity entity = this.receList.take();
         return entity;
     }
 
+    @Override
     public int ReceBufferSize() {
         return this.receList.BufferSize();
     }
 
+    @Override
     public synchronized void closeClient(String clientAddress) {
         if (this.socketMap.containsKey(clientAddress)) {
             Channel session = this.socketMap.get(clientAddress);
@@ -405,6 +413,7 @@ public class NettyTCPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public synchronized void hasRemark(int count) {
         remark_count = count;
     }

+ 5 - 0
src/main/java/com/persagy/iottransfer/communication/netty/udp/client/NettyUDPClientHandler.java

@@ -18,6 +18,7 @@ public class NettyUDPClientHandler extends SimpleChannelInboundHandler<DatagramP
         this.manager = manager;
     }
 
+    @Override
     public void channelRead0(ChannelHandlerContext ctx, DatagramPacket msg) throws Exception {
         int count = msg.content().readableBytes();
         byte[] bytes = new byte[count];
@@ -37,6 +38,7 @@ public class NettyUDPClientHandler extends SimpleChannelInboundHandler<DatagramP
         }
     }
 
+    @Override
     public void channelRegistered(ChannelHandlerContext ctx) throws Exception {
         super.channelRegistered(ctx);
 
@@ -46,6 +48,7 @@ public class NettyUDPClientHandler extends SimpleChannelInboundHandler<DatagramP
         }
     }
 
+    @Override
     public void channelUnregistered(ChannelHandlerContext ctx) throws Exception {
         super.channelUnregistered(ctx);
 
@@ -57,12 +60,14 @@ public class NettyUDPClientHandler extends SimpleChannelInboundHandler<DatagramP
         }
     }
 
+    @Override
     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
         if (this.manager.handlerManager != null) {
             this.manager.handlerManager.exceptionCaught(cause);
         }
     }
 
+    @Override
     public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
         super.userEventTriggered(ctx, evt);
 

+ 14 - 5
src/main/java/com/persagy/iottransfer/communication/netty/udp/client/NettyUDPClientManager.java

@@ -17,6 +17,7 @@ import java.net.InetSocketAddress;
 
 @Slf4j
 public class NettyUDPClientManager implements IClientManager {
+    public final PacketBuffer<Packet> receList = new PacketBuffer<Packet>();
     String projectId;
     IotProperties.Client client;
     String ip;
@@ -27,14 +28,9 @@ public class NettyUDPClientManager implements IClientManager {
     String aes_password;
     boolean compress = false;
     int Max_size = 1000;
-
     boolean sessionClosed = false;
-
     IClientHandler handlerManager;
     ILogger logger;
-
-    public final PacketBuffer<Packet> receList = new PacketBuffer<Packet>();
-
     boolean started = false;
     EventLoopGroup group = new NioEventLoopGroup(1);
     Channel channel;
@@ -90,6 +86,7 @@ public class NettyUDPClientManager implements IClientManager {
         this.Max_size = Max_size;
     }
 
+    @Override
     public void setHandlerManager(IClientHandler handlerManager) {
         this.handlerManager = handlerManager;
     }
@@ -102,10 +99,13 @@ public class NettyUDPClientManager implements IClientManager {
     public String getProjectId() {
         return this.projectId;
     }
+
     @Override
     public IotProperties.Client getClient() {
         return this.client;
     }
+
+    @Override
     public String Name() {
         if (this.ip == null) {
             return "UDP Client " + this.targetIp + ":" + this.targetPort;
@@ -114,14 +114,17 @@ public class NettyUDPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public synchronized boolean IsSessionClosed() {
         return this.sessionClosed;
     }
 
+    @Override
     public synchronized void SetSessionClosed(boolean value) {
         this.sessionClosed = value;
     }
 
+    @Override
     public synchronized void Start() {
         if (this.started) {
             return;
@@ -169,6 +172,7 @@ public class NettyUDPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public void Stop() {
         for (int i = 0; i < this.remark_count; i++) {
             this.receList.offer(new Packet(), Integer.MAX_VALUE);
@@ -184,6 +188,7 @@ public class NettyUDPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public void AppendToSend(Packet packet) {
         try {
             byte[] encoded = this.encoder.encode(packet);
@@ -203,16 +208,19 @@ public class NettyUDPClientManager implements IClientManager {
         return null;
     }
 
+    @Override
     public Packet PopRece() {
         Packet entity = this.receList.poll();
         return entity;
     }
 
+    @Override
     public Packet takeRece() throws InterruptedException {
         Packet MyPackage = this.receList.take();
         return MyPackage;
     }
 
+    @Override
     public int ReceBufferSize() {
         return this.receList.BufferSize();
     }
@@ -220,6 +228,7 @@ public class NettyUDPClientManager implements IClientManager {
     public synchronized void closeClient(String clientAddress) {
     }
 
+    @Override
     public synchronized void hasRemark(int count) {
         remark_count = count;
     }

+ 5 - 0
src/main/java/com/persagy/iottransfer/communication/netty/udp/server/NettyUDPServerHandler.java

@@ -20,6 +20,7 @@ public class NettyUDPServerHandler extends SimpleChannelInboundHandler<DatagramP
         this.manager = manager;
     }
 
+    @Override
     public void channelRead0(ChannelHandlerContext ctx, DatagramPacket msg) throws Exception {
         int count = msg.content().readableBytes();
         byte[] bytes = new byte[count];
@@ -42,24 +43,28 @@ public class NettyUDPServerHandler extends SimpleChannelInboundHandler<DatagramP
         }
     }
 
+    @Override
     public void channelRegistered(ChannelHandlerContext ctx) throws Exception {
         super.channelRegistered(ctx);
 
         log.warn(this.manager.Name() + "\tsessionOpened\t");
     }
 
+    @Override
     public void channelUnregistered(ChannelHandlerContext ctx) throws Exception {
         super.channelUnregistered(ctx);
 
         log.warn(this.manager.Name() + "\tsessionClosed\t");
     }
 
+    @Override
     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
         if (this.manager.handlerManager != null) {
             this.manager.handlerManager.exceptionCaught(ctx.channel().remoteAddress(), cause);
         }
     }
 
+    @Override
     public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
         super.userEventTriggered(ctx, evt);
 

+ 14 - 4
src/main/java/com/persagy/iottransfer/communication/netty/udp/server/NettyUDPServerManager.java

@@ -22,19 +22,16 @@ import java.util.Map;
 
 @Slf4j
 public class NettyUDPServerManager implements IServerManager {
+    public final PacketBuffer<PacketEntity> receList = new PacketBuffer<PacketEntity>();
     String ip;
     int port;
     String encoding;
     String aes_password;
     boolean compress = false;
     int Max_size = 1000;
-
     IServerHandler handlerManager;
     ILogger logger;
-
     Map<String, Date> connectDateMap = new HashMap<String, Date>();
-    public final PacketBuffer<PacketEntity> receList = new PacketBuffer<PacketEntity>();
-
     boolean allowJustSend = false;
 
     boolean started = false;
@@ -69,6 +66,7 @@ public class NettyUDPServerManager implements IServerManager {
         this.Max_size = Max_size;
     }
 
+    @Override
     public void setHandlerManager(IServerHandler handlerManager) {
         this.handlerManager = handlerManager;
     }
@@ -77,10 +75,12 @@ public class NettyUDPServerManager implements IServerManager {
         this.logger = logger;
     }
 
+    @Override
     public String Name() {
         return "UDP Server " + this.ip + ":" + this.port;
     }
 
+    @Override
     public synchronized void Start() {
         if (this.started) {
             return;
@@ -110,6 +110,7 @@ public class NettyUDPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public void Stop() {
         for (int i = 0; i < this.remark_count; i++) {
             this.receList.offer(new PacketEntity(), Integer.MAX_VALUE);
@@ -125,14 +126,17 @@ public class NettyUDPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public synchronized void AllowJustSend_UDP(boolean allow) {
         this.allowJustSend = allow;
     }
 
+    @Override
     public synchronized String[] GetClientAddresss() {
         return this.connectDateMap.keySet().toArray(new String[0]);
     }
 
+    @Override
     public synchronized Date GetConnectTime(String clientAddress) {
         if (this.connectDateMap.containsKey(clientAddress)) {
             return this.connectDateMap.get(clientAddress);
@@ -147,6 +151,7 @@ public class NettyUDPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public void AppendToSend(String clientAddress, Packet packet) {
         try {
             byte[] encoded = this.encoder.encode(packet);
@@ -170,23 +175,28 @@ public class NettyUDPServerManager implements IServerManager {
         return null;
     }
 
+    @Override
     public PacketEntity PopRece() {
         PacketEntity entity = this.receList.poll();
         return entity;
     }
 
+    @Override
     public PacketEntity takeRece() throws InterruptedException {
         PacketEntity entity = this.receList.take();
         return entity;
     }
 
+    @Override
     public int ReceBufferSize() {
         return this.receList.BufferSize();
     }
 
+    @Override
     public synchronized void closeClient(String clientAddress) {
     }
 
+    @Override
     public synchronized void hasRemark(int count) {
         remark_count = count;
     }

+ 13 - 6
src/main/java/com/persagy/iottransfer/communication/nio/tcp/client/NIOTCPClientManager.java

@@ -10,6 +10,8 @@ import lombok.Data;
 
 @Data
 public class NIOTCPClientManager implements IClientManager {
+    public final PacketBuffer<Packet> sendList = new PacketBuffer<Packet>();
+    public final PacketBuffer<Packet> receList = new PacketBuffer<Packet>();
     int buffer_size = 1024 * 16;
     long SelectTimeout = 1L;
     int SleepCount = 1000;
@@ -21,19 +23,13 @@ public class NIOTCPClientManager implements IClientManager {
     String aes_password;
     boolean compress = false;
     int Max_size = 1000;
-
     boolean separate;
     boolean separateBytes;
     byte prefix;
     byte suffix;
     byte[] prefixBytes;
     byte[] suffixBytes;
-
     boolean sessionClosed = false;
-
-    public final PacketBuffer<Packet> sendList = new PacketBuffer<Packet>();
-    public final PacketBuffer<Packet> receList = new PacketBuffer<Packet>();
-
     NIOTCPClientThread thread;
 
     ILogger logger;
@@ -126,6 +122,7 @@ public class NIOTCPClientManager implements IClientManager {
         this.suffixBytes = suffixBytes;
     }
 
+    @Override
     public void setHandlerManager(IClientHandler handlerManager) {
     }
 
@@ -139,18 +136,22 @@ public class NIOTCPClientManager implements IClientManager {
         return this.projectId;
     }
 
+    @Override
     public String Name() {
         return "TCP Client " + this.ip + ":" + this.port + " NIO";
     }
 
+    @Override
     public synchronized boolean IsSessionClosed() {
         return this.sessionClosed;
     }
 
+    @Override
     public synchronized void SetSessionClosed(boolean value) {
         this.sessionClosed = value;
     }
 
+    @Override
     public synchronized void Start() {
         if (this.thread == null) {
             this.thread = new NIOTCPClientThread(this);
@@ -158,6 +159,7 @@ public class NIOTCPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public synchronized void Stop() {
         for (int i = 0; i < this.remark_count; i++) {
             this.receList.offer(new Packet(), Integer.MAX_VALUE);
@@ -168,6 +170,7 @@ public class NIOTCPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public void AppendToSend(Packet MyPackage) {
         this.sendList.offer(MyPackage, this.Max_size);
     }
@@ -181,20 +184,24 @@ public class NIOTCPClientManager implements IClientManager {
         this.receList.offer(MyPackage, this.Max_size);
     }
 
+    @Override
     public Packet PopRece() {
         Packet MyPackage = this.receList.poll();
         return MyPackage;
     }
 
+    @Override
     public Packet takeRece() throws InterruptedException {
         Packet MyPackage = this.receList.take();
         return MyPackage;
     }
 
+    @Override
     public int ReceBufferSize() {
         return this.receList.BufferSize();
     }
 
+    @Override
     public synchronized void hasRemark(int count) {
         remark_count = count;
     }

+ 1 - 0
src/main/java/com/persagy/iottransfer/communication/nio/tcp/client/NIOTCPClientThread.java

@@ -49,6 +49,7 @@ public class NIOTCPClientThread extends Thread {
         }
     }
 
+    @Override
     public void run() {
         while (!this.stop) {
             TryRun();

+ 16 - 7
src/main/java/com/persagy/iottransfer/communication/nio/tcp/server/NIOTCPServerManager.java

@@ -12,28 +12,24 @@ import java.util.HashMap;
 import java.util.Map;
 
 public class NIOTCPServerManager implements IServerManager {
+    public final Map<String, Date> connectDateMap = new HashMap<String, Date>();
+    public final Map<String, PacketBuffer<Packet>> sendListMap = new HashMap<String, PacketBuffer<Packet>>();
+    public final PacketBuffer<PacketEntity> receList = new PacketBuffer<PacketEntity>();
     int buffer_size = 1024 * 16;
     long SelectTimeout = 1L;
     int SleepCount = 1000;
-
     String ip;
     int port;
     String encoding;
     String aes_password;
     boolean compress = false;
     int Max_size = 1000;
-
     boolean separate;
     boolean separateBytes;
     byte prefix;
     byte suffix;
     byte[] prefixBytes;
     byte[] suffixBytes;
-
-    public final Map<String, Date> connectDateMap = new HashMap<String, Date>();
-    public final Map<String, PacketBuffer<Packet>> sendListMap = new HashMap<String, PacketBuffer<Packet>>();
-    public final PacketBuffer<PacketEntity> receList = new PacketBuffer<PacketEntity>();
-
     NIOTCPServerThread thread;
 
     ILogger logger;
@@ -126,13 +122,16 @@ public class NIOTCPServerManager implements IServerManager {
         this.suffixBytes = suffixBytes;
     }
 
+    @Override
     public void setHandlerManager(IServerHandler handlerManager) {
     }
 
+    @Override
     public String Name() {
         return "TCP Server " + this.ip + ":" + this.port + " NIO";
     }
 
+    @Override
     public synchronized void Start() {
         if (this.thread == null) {
             this.thread = new NIOTCPServerThread(this);
@@ -140,6 +139,7 @@ public class NIOTCPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public synchronized void Stop() {
         for (int i = 0; i < this.remark_count; i++) {
             this.receList.offer(new PacketEntity(), Integer.MAX_VALUE);
@@ -150,14 +150,17 @@ public class NIOTCPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public synchronized void AllowJustSend_UDP(boolean allow) {
 
     }
 
+    @Override
     public synchronized String[] GetClientAddresss() {
         return this.connectDateMap.keySet().toArray(new String[0]);
     }
 
+    @Override
     public synchronized Date GetConnectTime(String clientAddress) {
         if (this.connectDateMap.containsKey(clientAddress)) {
             return this.connectDateMap.get(clientAddress);
@@ -172,6 +175,7 @@ public class NIOTCPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public void AppendToSend(String clientAddress, Packet MyPackage) {
         if (!this.sendListMap.containsKey(clientAddress)) {
             this.sendListMap.put(clientAddress, new PacketBuffer<Packet>());
@@ -196,23 +200,28 @@ public class NIOTCPServerManager implements IServerManager {
         this.receList.offer(entity, this.Max_size);
     }
 
+    @Override
     public PacketEntity PopRece() {
         PacketEntity entity = this.receList.poll();
         return entity;
     }
 
+    @Override
     public PacketEntity takeRece() throws InterruptedException {
         PacketEntity entity = this.receList.take();
         return entity;
     }
 
+    @Override
     public int ReceBufferSize() {
         return this.receList.BufferSize();
     }
 
+    @Override
     public synchronized void closeClient(String clientAddress) {
     }
 
+    @Override
     public synchronized void hasRemark(int count) {
         remark_count = count;
     }

+ 1 - 0
src/main/java/com/persagy/iottransfer/communication/nio/tcp/server/NIOTCPServerThread.java

@@ -54,6 +54,7 @@ public class NIOTCPServerThread extends Thread {
         }
     }
 
+    @Override
     public void run() {
         while (!this.stop) {
             TryRun();

+ 15 - 6
src/main/java/com/persagy/iottransfer/communication/nio/udp/client/NIOUDPClientManager.java

@@ -7,6 +7,8 @@ import com.persagy.iottransfer.communication.util.PacketBuffer;
 import com.persagy.iottransfer.config.IotProperties;
 
 public class NIOUDPClientManager implements IClientManager {
+    public final PacketBuffer<Packet> sendList = new PacketBuffer<Packet>();
+    public final PacketBuffer<Packet> receList = new PacketBuffer<Packet>();
     String ip;
     IotProperties.Client client;
     String projectId;
@@ -15,16 +17,10 @@ public class NIOUDPClientManager implements IClientManager {
     int targetPort;
     String encoding;
     int buffer_size = 1024 * 16;
-
     int Max_size = 1000;
     long SelectTimeout = 1L;
     int SleepCount = 1000;
-
     boolean sessionClosed = false;
-
-    public final PacketBuffer<Packet> sendList = new PacketBuffer<Packet>();
-    public final PacketBuffer<Packet> receList = new PacketBuffer<Packet>();
-
     NIOUDPClientThread thread;
     int remark_count = 0;
 
@@ -42,21 +38,26 @@ public class NIOUDPClientManager implements IClientManager {
         this.SleepCount = SleepCount;
     }
 
+    @Override
     public void setHandlerManager(IClientHandler handlerManager) {
     }
 
+    @Override
     public String Name() {
         return "UDP Client " + this.ip + ":" + this.port + " NIO";
     }
 
+    @Override
     public synchronized boolean IsSessionClosed() {
         return this.sessionClosed;
     }
 
+    @Override
     public synchronized void SetSessionClosed(boolean value) {
         this.sessionClosed = value;
     }
 
+    @Override
     public synchronized void Start() {
         if (this.thread == null) {
             this.thread = new NIOUDPClientThread(this);
@@ -64,6 +65,7 @@ public class NIOUDPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public synchronized void Stop() {
         for (int i = 0; i < this.remark_count; i++) {
             this.receList.offer(new Packet(), Integer.MAX_VALUE);
@@ -74,6 +76,7 @@ public class NIOUDPClientManager implements IClientManager {
         }
     }
 
+    @Override
     public void AppendToSend(Packet MyPackage) {
         this.sendList.offer(MyPackage, this.Max_size);
     }
@@ -87,27 +90,33 @@ public class NIOUDPClientManager implements IClientManager {
         this.receList.offer(MyPackage, this.Max_size);
     }
 
+    @Override
     public Packet PopRece() {
         Packet MyPackage = this.receList.poll();
         return MyPackage;
     }
 
+    @Override
     public Packet takeRece() throws InterruptedException {
         Packet MyPackage = this.receList.take();
         return MyPackage;
     }
 
+    @Override
     public int ReceBufferSize() {
         return this.receList.BufferSize();
     }
 
+    @Override
     public synchronized void hasRemark(int count) {
         remark_count = count;
     }
+
     @Override
     public String getProjectId() {
         return this.projectId;
     }
+
     @Override
     public IotProperties.Client getClient() {
         return this.client;

+ 1 - 0
src/main/java/com/persagy/iottransfer/communication/nio/udp/client/NIOUDPClientThread.java

@@ -40,6 +40,7 @@ public class NIOUDPClientThread extends Thread {
         }
     }
 
+    @Override
     public void run() {
         while (!this.stop) {
             TryRun();

+ 17 - 7
src/main/java/com/persagy/iottransfer/communication/nio/udp/server/NIOUDPServerManager.java

@@ -14,20 +14,17 @@ import java.util.HashMap;
 import java.util.Map;
 
 public class NIOUDPServerManager implements IServerManager {
+    public final Map<String, Date> connectDateMap = new HashMap<String, Date>();
+    public final Map<String, SocketAddress> socketMap = new HashMap<String, SocketAddress>();
+    public final PacketBuffer<PacketEntity> sendList = new PacketBuffer<PacketEntity>();
+    public final PacketBuffer<PacketEntity> receList = new PacketBuffer<PacketEntity>();
     String ip;
     int port;
     String encoding;
     int buffer_size = 1024 * 16;
-
     int Max_size = 1000;
     long SelectTimeout = 1L;
     int SleepCount = 1000;
-
-    public final Map<String, Date> connectDateMap = new HashMap<String, Date>();
-    public final Map<String, SocketAddress> socketMap = new HashMap<String, SocketAddress>();
-    public final PacketBuffer<PacketEntity> sendList = new PacketBuffer<PacketEntity>();
-    public final PacketBuffer<PacketEntity> receList = new PacketBuffer<PacketEntity>();
-
     NIOUDPServerThread thread;
 
     boolean allowJustSend = false;
@@ -45,13 +42,16 @@ public class NIOUDPServerManager implements IServerManager {
         this.SleepCount = SleepCount;
     }
 
+    @Override
     public void setHandlerManager(IServerHandler handlerManager) {
     }
 
+    @Override
     public String Name() {
         return "UDP Server " + this.ip + ":" + this.port + " NIO";
     }
 
+    @Override
     public synchronized void Start() {
         if (this.thread == null) {
             this.thread = new NIOUDPServerThread(this);
@@ -59,6 +59,7 @@ public class NIOUDPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public synchronized void Stop() {
         for (int i = 0; i < this.remark_count; i++) {
             this.receList.offer(new PacketEntity(), Integer.MAX_VALUE);
@@ -69,14 +70,17 @@ public class NIOUDPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public synchronized String[] GetClientAddresss() {
         return this.connectDateMap.keySet().toArray(new String[0]);
     }
 
+    @Override
     public synchronized void AllowJustSend_UDP(boolean allow) {
         this.allowJustSend = allow;
     }
 
+    @Override
     public synchronized Date GetConnectTime(String clientAddress) {
         if (this.connectDateMap.containsKey(clientAddress)) {
             return this.connectDateMap.get(clientAddress);
@@ -98,6 +102,7 @@ public class NIOUDPServerManager implements IServerManager {
         }
     }
 
+    @Override
     public void AppendToSend(String clientAddress, Packet MyPackage) {
         PacketEntity entity = new PacketEntity();
         entity.address = clientAddress;
@@ -133,24 +138,29 @@ public class NIOUDPServerManager implements IServerManager {
         this.receList.offer(entity, this.Max_size);
     }
 
+    @Override
     public PacketEntity PopRece() {
         PacketEntity entity = this.receList.poll();
         return entity;
     }
 
+    @Override
     public PacketEntity takeRece() throws InterruptedException {
         PacketEntity entity = this.receList.take();
         return entity;
     }
 
+    @Override
     public int ReceBufferSize() {
         return this.receList.BufferSize();
     }
 
+    @Override
     public synchronized void closeClient(String clientAddress) {
         this.socketMap.remove(clientAddress);
     }
 
+    @Override
     public synchronized void hasRemark(int count) {
         remark_count = count;
     }

+ 1 - 0
src/main/java/com/persagy/iottransfer/communication/nio/udp/server/NIOUDPServerThread.java

@@ -41,6 +41,7 @@ public class NIOUDPServerThread extends Thread {
         }
     }
 
+    @Override
     public void run() {
         while (!this.stop) {
             TryRun();

+ 4 - 4
src/main/java/com/persagy/iottransfer/communication/util/AESHelper.java

@@ -21,9 +21,9 @@ public class AESHelper {
         this.password = password;
         this.mode = mode;
 
-        if (this.mode.equals("encrypt")) {
+        if ("encrypt".equals(this.mode)) {
             this.cipher = this.initCipher(this.password, Cipher.ENCRYPT_MODE);
-        } else if (this.mode.equals("decrypt")) {
+        } else if ("decrypt".equals(this.mode)) {
             this.cipher = this.initCipher(this.password, Cipher.DECRYPT_MODE);
         }
     }
@@ -37,7 +37,7 @@ public class AESHelper {
     }
 
     public synchronized byte[] encrypt(byte[] bytes) throws Exception {
-        if (this.mode.equals("encrypt")) {
+        if ("encrypt".equals(this.mode)) {
             byte[] results = this.cipher.doFinal(bytes);
             return results;
         } else {
@@ -46,7 +46,7 @@ public class AESHelper {
     }
 
     public synchronized byte[] decrypt(byte[] bytes) throws Exception {
-        if (this.mode.equals("decrypt")) {
+        if ("decrypt".equals(this.mode)) {
             byte[] results = this.cipher.doFinal(bytes);
             return results;
         } else {

+ 2 - 2
src/main/java/com/persagy/iottransfer/communication/util/ExceptionUtil.java

@@ -4,14 +4,14 @@ import java.io.PrintWriter;
 import java.io.StringWriter;
 
 public class ExceptionUtil {
-    private static final ExceptionUtil instance = new ExceptionUtil();
+    private static final ExceptionUtil INSTANCE = new ExceptionUtil();
 
     private ExceptionUtil() {
 
     }
 
     public synchronized static ExceptionUtil Instance() {
-        return instance;
+        return INSTANCE;
     }
 
     public synchronized String GetMessage(Exception e) {

+ 6 - 7
src/main/java/com/persagy/iottransfer/config/ProjectClent.java

@@ -13,22 +13,21 @@ import java.util.concurrent.ConcurrentHashMap;
  */
 @Service
 public class ProjectClent {
+    public final Map<String, String> addressProjectMap = new ConcurrentHashMap<>();
     @Autowired
     IotProperties iotProperties;
 
-    public final Map<String,String> addressProjectMap = new ConcurrentHashMap<>();
-
-    public  String getProject(String address){
+    public String getProject(String address) {
         return addressProjectMap.get(address);
     }
 
-    public  String getProject(String address,String message){
-        if(addressProjectMap.containsKey(address)){
+    public String getProject(String address, String message) {
+        if (addressProjectMap.containsKey(address)) {
             return addressProjectMap.get(address);
         }
         for (IotProperties.Project project : iotProperties.projects) {
-            if(message.contains(project.getId())){
-                addressProjectMap.put(address,project.getId());
+            if (message.contains(project.getId())) {
+                addressProjectMap.put(address, project.getId());
             }
         }
         return addressProjectMap.get(address);

+ 1 - 2
src/main/java/com/persagy/iottransfer/controller/HelloWorld.java

@@ -12,7 +12,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
 
 @RestController
 @RequestMapping("test")
@@ -31,7 +30,7 @@ public class HelloWorld {
     public int kafka2(@RequestBody JSONObject jsonObject) throws Exception {
         String topic = jsonObject.getString("topic");
         PacketEntity packetEntity = jsonObject.getObject("packetEntity", PacketEntity.class);
-        kafkaProducer.sendMessage(packetEntity,topic);
+        kafkaProducer.sendMessage(packetEntity, topic);
         return packetEntity.toString().getBytes(StandardCharsets.UTF_8).length;
     }
 }

+ 2 - 1
src/main/java/com/persagy/iottransfer/init/DaemonThread.java

@@ -27,12 +27,13 @@ public class DaemonThread implements ServletContextListener {
     IotClient iotClient;
     @Autowired
     ProjectClent projectClent;
+
     @Override
     public void contextInitialized(ServletContextEvent sce) {
         iotServer.init();
         iotClient.init();
         //异步消费消息
-        ThreadUtil.execAsync(new IotServerReceiveMessageThread(kafkaProducer,projectClent), true);
+        ThreadUtil.execAsync(new IotServerReceiveMessageThread(kafkaProducer, projectClent), true);
         ThreadUtil.execAsync(new IotClientReceiveMessageThread(kafkaProducer), true);
         log.info("----------contextInitialize end--------------");
     }

+ 100 - 105
src/main/java/com/persagy/iottransfer/init/alibabaiotgateway.java

@@ -43,47 +43,106 @@ import java.util.function.Supplier;
 @Component
 @Order(value = 1)
 @EnableAsync
-@ConditionalOnProperty(prefix = "spring", name="location", havingValue="Cloud")
+@ConditionalOnProperty(prefix = "spring", name = "location", havingValue = "Cloud")
 public class alibabaiotgateway implements ApplicationRunner {
     private final static Logger logger = LoggerFactory.getLogger(alibabaiotgateway.class);
+    //业务处理异步线程池,线程池参数可以根据您的业务特点调整,或者您也可以用其他异步方式处理接收到的消息。
+    private final static ExecutorService executorService = new ThreadPoolExecutor(
+            Runtime.getRuntime().availableProcessors(),
+            Runtime.getRuntime().availableProcessors() * 2, 60, TimeUnit.SECONDS,
+            new LinkedBlockingQueue(50000));
+    // 指定单个进程启动的连接数
+    // 单个连接消费速率有限,请参考使用限制,最大64个连接
+    // 连接数和消费速率及rebalance相关,建议每500QPS增加一个连接
+    private static final int connectionCount = 4;
+    private static final MessageListener messageListener = new MessageListener() {
+        @Override
+        public void onMessage(final Message message) {
+            try {
+                //1.收到消息之后一定要ACK。
+                // 推荐做法:创建Session选择Session.AUTO_ACKNOWLEDGE,这里会自动ACK。
+                // 其他做法:创建Session选择Session.CLIENT_ACKNOWLEDGE,这里一定要调message.acknowledge()来ACK。
+                // message.acknowledge();
+                //2.建议异步处理收到的消息,确保onMessage函数里没有耗时逻辑。
+                // 如果业务处理耗时过程过长阻塞住线程,可能会影响SDK收到消息后的正常回调。
+                executorService.submit(new Runnable() {
+                    @Override
+                    public void run() {
+                        processMessage(message);
+                    }
+                });
+            } catch (Exception e) {
+                logger.error("submit task occurs exception ", e);
+            }
+        }
+    };
+    private static final JmsConnectionListener myJmsConnectionListener = new JmsConnectionListener() {
+        /**
+         * 连接成功建立。
+         */
+        @Override
+        public void onConnectionEstablished(URI remoteURI) {
+            logger.info("onConnectionEstablished, remoteUri:{}", remoteURI);
+        }
+
+        /**
+         * 尝试过最大重试次数之后,最终连接失败。
+         */
+        @Override
+        public void onConnectionFailure(Throwable error) {
+            logger.error("onConnectionFailure, {}", error.getMessage());
+        }
+
+        /**
+         * 连接中断。
+         */
+        @Override
+        public void onConnectionInterrupted(URI remoteURI) {
+            logger.info("onConnectionInterrupted, remoteUri:{}", remoteURI);
+        }
+
+        /**
+         * 连接中断后又自动重连上。
+         */
+        @Override
+        public void onConnectionRestored(URI remoteURI) {
+            logger.info("onConnectionRestored, remoteUri:{}", remoteURI);
+        }
+
+        @Override
+        public void onInboundMessage(JmsInboundMessageDispatch envelope) {
+        }
+
+        @Override
+        public void onSessionClosed(Session session, Throwable cause) {
+        }
+
+        @Override
+        public void onConsumerClosed(MessageConsumer consumer, Throwable cause) {
+        }
+
+        @Override
+        public void onProducerClosed(MessageProducer producer, Throwable cause) {
+        }
+    };
     @Value("${alibaba.iot.accessKey}")
-    private  String accessKey ;
+    private String accessKey;
     @Value("${alibaba.iot.accessSecret}")
-    private  String accessSecret ;
+    private String accessSecret;
     @Value("${alibaba.iot.consumerGroupId}")
-    private  String consumerGroupId ;
-
+    private String consumerGroupId;
     //iotInstanceId:企业版实例请填写实例ID,公共实例请填空字符串""。
     @Value("${alibaba.iot.iotInstanceId}")
-    private  String iotInstanceId ;
-
+    private String iotInstanceId;
     //控制台服务端订阅中消费组状态页客户端ID一栏将显示clientId参数。
     //建议使用机器UUID、MAC地址、IP等唯一标识等作为clientId。便于您区分识别不同的客户端。
     @Value("${alibaba.iot.clientId}")
-    private  String clientId ;
-
+    private String clientId;
     //${YourHost}为接入域名,请参见AMQP客户端接入说明文档。
     @Value("${alibaba.iot.host}")
-    private  String host ;
+    private String host;
     @Value("${alibaba.iot.proxy}")
-    private  boolean proxy;
-    @Value("${alibaba.iot.proxyhost}")
-    private  String proxyhost;
-    @Value("${alibaba.iot.proxyport}")
-    private  Integer proxyport;
-
-
-
-    // 指定单个进程启动的连接数
-    // 单个连接消费速率有限,请参考使用限制,最大64个连接
-    // 连接数和消费速率及rebalance相关,建议每500QPS增加一个连接
-    private static int connectionCount = 4;
-
-    //业务处理异步线程池,线程池参数可以根据您的业务特点调整,或者您也可以用其他异步方式处理接收到的消息。
-    private final static ExecutorService executorService = new ThreadPoolExecutor(
-            Runtime.getRuntime().availableProcessors(),
-            Runtime.getRuntime().availableProcessors() * 2, 60, TimeUnit.SECONDS,
-            new LinkedBlockingQueue(50000));
+    private boolean proxy;
 
 
 //    public static void main(String[] args) throws Exception {
@@ -154,28 +213,10 @@ public class alibabaiotgateway implements ApplicationRunner {
 //            logger.info("failed to handle messages");
 //        }
 //    }
-
-    private static MessageListener messageListener = new MessageListener() {
-        @Override
-        public void onMessage(final Message message) {
-            try {
-                //1.收到消息之后一定要ACK。
-                // 推荐做法:创建Session选择Session.AUTO_ACKNOWLEDGE,这里会自动ACK。
-                // 其他做法:创建Session选择Session.CLIENT_ACKNOWLEDGE,这里一定要调message.acknowledge()来ACK。
-                // message.acknowledge();
-                //2.建议异步处理收到的消息,确保onMessage函数里没有耗时逻辑。
-                // 如果业务处理耗时过程过长阻塞住线程,可能会影响SDK收到消息后的正常回调。
-                executorService.submit(new Runnable() {
-                    @Override
-                    public void run() {
-                        processMessage(message);
-                    }
-                });
-            } catch (Exception e) {
-                logger.error("submit task occurs exception ", e);
-            }
-        }
-    };
+    @Value("${alibaba.iot.proxyhost}")
+    private String proxyhost;
+    @Value("${alibaba.iot.proxyport}")
+    private Integer proxyport;
 
     /**
      * 在这里处理您收到消息后的具体业务逻辑。
@@ -195,52 +236,6 @@ public class alibabaiotgateway implements ApplicationRunner {
         }
     }
 
-    private static JmsConnectionListener myJmsConnectionListener = new JmsConnectionListener() {
-        /**
-         * 连接成功建立。
-         */
-        @Override
-        public void onConnectionEstablished(URI remoteURI) {
-            logger.info("onConnectionEstablished, remoteUri:{}", remoteURI);
-        }
-
-        /**
-         * 尝试过最大重试次数之后,最终连接失败。
-         */
-        @Override
-        public void onConnectionFailure(Throwable error) {
-            logger.error("onConnectionFailure, {}", error.getMessage());
-        }
-
-        /**
-         * 连接中断。
-         */
-        @Override
-        public void onConnectionInterrupted(URI remoteURI) {
-            logger.info("onConnectionInterrupted, remoteUri:{}", remoteURI);
-        }
-
-        /**
-         * 连接中断后又自动重连上。
-         */
-        @Override
-        public void onConnectionRestored(URI remoteURI) {
-            logger.info("onConnectionRestored, remoteUri:{}", remoteURI);
-        }
-
-        @Override
-        public void onInboundMessage(JmsInboundMessageDispatch envelope) {}
-
-        @Override
-        public void onSessionClosed(Session session, Throwable cause) {}
-
-        @Override
-        public void onConsumerClosed(MessageConsumer consumer, Throwable cause) {}
-
-        @Override
-        public void onProducerClosed(MessageProducer producer, Throwable cause) {}
-    };
-
     /**
      * 计算签名,password组装方法,请参见AMQP客户端接入说明文档。
      */
@@ -264,7 +259,7 @@ public class alibabaiotgateway implements ApplicationRunner {
             String signMethod = "hmacsha1";
 
             //userName组装方法,请参见AMQP客户端接入说明文档。
-            String userName = clientId +"-" + i + "|authMode=aksign"
+            String userName = clientId + "-" + i + "|authMode=aksign"
                     + ",signMethod=" + signMethod
                     + ",timestamp=" + timeStamp
                     + ",authId=" + accessKey
@@ -285,7 +280,7 @@ public class alibabaiotgateway implements ApplicationRunner {
             Context context = new InitialContext(hashtable);
 
             Connection connection = null;
-            if (proxy){
+            if (proxy) {
                 logger.info(">>>>进入代理服务处理方法");
                 //   context =new InitialContext(hashtable);
 //                JMSConnectionFactory cf1 = (JMSConnectionFactory) context.lookup("SBCF");
@@ -295,7 +290,7 @@ public class alibabaiotgateway implements ApplicationRunner {
 //                cf1.setExtension(JmsConnectionExtensions.PROXY_HANDLER_SUPPLIER.toString(),(connection1,remote)->{
 //                    return proxyHandlerSupplier;
 //                });
-                Supplier<ProxyHandler> proxyHandlerSupplier =()-> new HttpProxyHandler(new InetSocketAddress(proxyhost,proxyport));
+                Supplier<ProxyHandler> proxyHandlerSupplier = () -> new HttpProxyHandler(new InetSocketAddress(proxyhost, proxyport));
                 JmsConnectionFactory factory = (JmsConnectionFactory) context.lookup("SBCF");
                 factory.setExtension(JmsConnectionExtensions.PROXY_HANDLER_SUPPLIER.toString(), (connection1, remote) -> {
 //                    SocketAddress proxyAddress = new InetSocketAddress(proxyhost, proxyport);
@@ -306,16 +301,16 @@ public class alibabaiotgateway implements ApplicationRunner {
                 });
                 connection = factory.createConnection(userName, password);
                 logger.info(">>>>>>>创建阿里iot通过招商代理访问互联网");
-            }else{
-                ConnectionFactory cf = (ConnectionFactory)context.lookup("SBCF");
+            } else {
+                ConnectionFactory cf = (ConnectionFactory) context.lookup("SBCF");
                 // 创建连接。
-                connection= cf.createConnection(userName, password);
+                connection = cf.createConnection(userName, password);
             }
 
-            Destination queue = (Destination)context.lookup("QUEUE");
+            Destination queue = (Destination) context.lookup("QUEUE");
             connections.add(connection);
 
-            ((JmsConnection)connection).addConnectionListener(myJmsConnectionListener);
+            ((JmsConnection) connection).addConnectionListener(myJmsConnectionListener);
             // 创建会话。
             // Session.CLIENT_ACKNOWLEDGE: 收到消息后,需要手动调用message.acknowledge()。
             // Session.AUTO_ACKNOWLEDGE: SDK自动ACK(推荐)。
@@ -334,7 +329,7 @@ public class alibabaiotgateway implements ApplicationRunner {
         Thread.sleep(60 * 1000);
         logger.info("run shutdown");
 
-        connections.forEach(c-> {
+        connections.forEach(c -> {
             try {
                 c.close();
             } catch (JMSException e) {

+ 4 - 5
src/main/java/com/persagy/iottransfer/kafka/KafkaConsumerCloud2Edge.java

@@ -1,10 +1,8 @@
 package com.persagy.iottransfer.kafka;
 
 import com.alibaba.fastjson.JSONObject;
-import com.persagy.iottransfer.client.IotClient;
 import com.persagy.iottransfer.communication.entity.Packet;
 import com.persagy.iottransfer.communication.entity.PacketEntity;
-import com.persagy.iottransfer.communication.util.IClientManager;
 import com.persagy.iottransfer.server.IotServer;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
@@ -24,7 +22,7 @@ import java.util.Optional;
  */
 @Component
 @Slf4j
-@ConditionalOnProperty(prefix = "iot.type",name = "edge",havingValue = "true",matchIfMissing = false)
+@ConditionalOnProperty(prefix = "iot.type", name = "edge", havingValue = "true", matchIfMissing = false)
 public class KafkaConsumerCloud2Edge {
 
     @KafkaListener(topics = KafkaProducer.TOPIC_COLLECT2EDGE, groupId = KafkaProducer.TOPIC_EDGE)
@@ -34,11 +32,12 @@ public class KafkaConsumerCloud2Edge {
             PacketEntity packetEntity = JSONObject.parseObject(message.get(), PacketEntity.class);
             String projectId = packetEntity.getProjectId();
             Packet packet = packetEntity.getContent();
-            IotServer.tcpCollectServerManager.AppendToSendByProject(projectId,packet);
+            IotServer.tcpCollectServerManager.AppendToSendByProject(projectId, packet);
             log.info("topicCollect2Edge 消费了: Topic:" + topic + ",Message:" + packetEntity);
             ack.acknowledge();
         }
     }
+
     @KafkaListener(topics = KafkaProducer.TOPIC_CONTROL2EDGE, groupId = KafkaProducer.TOPIC_EDGE)
     public void topicControl2Edge(ConsumerRecord<String, String> record, Acknowledgment ack, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic) {
         Optional<String> message = Optional.ofNullable(record.value());
@@ -46,7 +45,7 @@ public class KafkaConsumerCloud2Edge {
             PacketEntity packetEntity = JSONObject.parseObject(message.get(), PacketEntity.class);
             String projectId = packetEntity.getProjectId();
             Packet packet = packetEntity.getContent();
-            IotServer.tcpControlServerManager.AppendToSendByProject(projectId,packet);
+            IotServer.tcpControlServerManager.AppendToSendByProject(projectId, packet);
             log.info("topicControl2Edge 消费了: Topic:" + topic + ",Message:" + packetEntity);
             ack.acknowledge();
         }

+ 6 - 8
src/main/java/com/persagy/iottransfer/kafka/KafkaConsumerEdge2Cloud.java

@@ -1,9 +1,7 @@
 package com.persagy.iottransfer.kafka;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.persagy.iottransfer.client.IotClient;
-import com.persagy.iottransfer.communication.entity.Packet;
 import com.persagy.iottransfer.communication.entity.PacketEntity;
 import com.persagy.iottransfer.communication.util.IClientManager;
 import lombok.extern.slf4j.Slf4j;
@@ -24,7 +22,7 @@ import java.util.Optional;
  */
 @Component
 @Slf4j
-@ConditionalOnProperty(prefix = "iot.type",name = "cloud",havingValue = "true",matchIfMissing = false)
+@ConditionalOnProperty(prefix = "iot.type", name = "cloud", havingValue = "true", matchIfMissing = false)
 public class KafkaConsumerEdge2Cloud {
 
 
@@ -36,11 +34,11 @@ public class KafkaConsumerEdge2Cloud {
                 String msg = message.get();
                 log.info("topic iot.edge2collect------消费了: Topic:" + topic + ",Message:" + msg);
                 PacketEntity packetEntity = JSONObject.parseObject(msg, PacketEntity.class);
-                IClientManager clientManager = IotClient.clientproject2CollectManagerMap.get(packetEntity.getProjectId());
+                IClientManager clientManager = IotClient.CLIENT_PROJECT_2_COLLECT_MANAGER_MAP.get(packetEntity.getProjectId());
                 clientManager.AppendToSend(packetEntity.content);
             }
         } catch (Exception e) {
-            log.error(e.getMessage(),e);
+            log.error(e.getMessage(), e);
         }
         ack.acknowledge();
     }
@@ -53,13 +51,13 @@ public class KafkaConsumerEdge2Cloud {
                 String msg = message.get();
                 log.info("topic iot.edge2control------消费了: Topic:" + topic + ",Message:" + msg);
                 PacketEntity packetEntity = JSONObject.parseObject(msg, PacketEntity.class);
-                IClientManager clientManager = IotClient.clientproject2ControlManagerMap.get(packetEntity.getProjectId());
-                if(clientManager != null){
+                IClientManager clientManager = IotClient.CLIENT_PROJECT_2_CONTROL_MANAGER_MAP.get(packetEntity.getProjectId());
+                if (clientManager != null) {
                     clientManager.AppendToSend(packetEntity.content);
                 }
             }
         } catch (Exception e) {
-            log.error(e.getMessage(),e);
+            log.error(e.getMessage(), e);
         }
         ack.acknowledge();
     }

+ 1 - 1
src/main/java/com/persagy/iottransfer/kafka/KafkaProducer.java

@@ -34,7 +34,7 @@ public class KafkaProducer {
     public void sendMessage(PacketEntity obj, String topic) {
         String obj2String = JSONObject.toJSONString(obj);
         log.info("准备发送消息为:{}", obj2String);
-        if(StrUtil.isEmpty(obj.getProjectId())){
+        if (StrUtil.isEmpty(obj.getProjectId())) {
             //log.info("项目id为空,丢去:{}", obj2String);
             return;
         }

+ 1 - 2
src/main/java/com/persagy/iottransfer/server/IotServer.java

@@ -1,7 +1,6 @@
 package com.persagy.iottransfer.server;
 
 import com.persagy.iottransfer.communication.mina.tcp.server.TCPServerManager;
-import com.persagy.iottransfer.communication.mina.udp.server.UDPServerManager;
 import com.persagy.iottransfer.config.CollectServerProperties;
 import com.persagy.iottransfer.config.ControlServerProperties;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,7 +27,7 @@ public class IotServer {
 
     public void init() {
         //直接连接边缘端侧iot-project的服务
-        if(edge){
+        if (edge) {
             if (collectServerProperties.getTcp_enable()) {
                 tcpCollectServerManager = new TCPServerManager(collectServerProperties.getTcp_bind_ip(), collectServerProperties.getTcp_bind_port(), "utf-8", collectServerProperties.getCompress(), collectServerProperties.getMax_size(), (byte) collectServerProperties.getSeparate_begin().charAt(0),
                         (byte) collectServerProperties.getSeparate_end().charAt(0));

+ 14 - 14
src/main/java/com/persagy/iottransfer/server/IotServerReceiveMessageThread.java

@@ -4,7 +4,6 @@ import cn.hutool.core.thread.ThreadUtil;
 import com.persagy.iottransfer.communication.entity.PacketEntity;
 import com.persagy.iottransfer.config.ProjectClent;
 import com.persagy.iottransfer.kafka.KafkaProducer;
-import com.persagy.iottransfer.server.IotServer;
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -22,54 +21,55 @@ public class IotServerReceiveMessageThread implements Runnable {
 
     PacketEntity tcpControl = null;
     PacketEntity tcpCollect = null;
-    public IotServerReceiveMessageThread(KafkaProducer kafkaProducer,ProjectClent projectClent) {
+
+    public IotServerReceiveMessageThread(KafkaProducer kafkaProducer, ProjectClent projectClent) {
         this.kafkaProducer = kafkaProducer;
         this.projectClent = projectClent;
     }
 
     @Override
     public void run() {
-        ThreadUtil.execAsync(()->{
-            while (true){
+        ThreadUtil.execAsync(() -> {
+            while (true) {
                 try {
                     tcpControl = IotServer.tcpControlServerManager.takeRece();
                     if (tcpControl != null) {
                         if (tcpControl.address == null) {
                             break;
                         }
-                        addProject(tcpControl,"tcpControl");
+                        addProject(tcpControl, "tcpControl");
                         log.info("收到iot-project 控制消息:{}", tcpControl);
                         kafkaProducer.sendFromedge2control(tcpControl);
                     }
                 } catch (Exception e) {
-                    log.error(e.getMessage(),e);
+                    log.error(e.getMessage(), e);
                 }
             }
-        },true);
-        ThreadUtil.execAsync(()->{
-            while (true){
+        }, true);
+        ThreadUtil.execAsync(() -> {
+            while (true) {
                 try {
                     tcpCollect = IotServer.tcpCollectServerManager.takeRece();
                     if (tcpCollect != null) {
                         if (tcpCollect.address == null) {
                             break;
                         }
-                        addProject(tcpCollect,"tcpCollect");
+                        addProject(tcpCollect, "tcpCollect");
                         log.info("收到iot-project 采集消息:{}", tcpCollect);
                         kafkaProducer.sendFromedge2collect(tcpCollect);
                     }
                 } catch (Exception e) {
-                    log.error(e.getMessage(),e);
+                    log.error(e.getMessage(), e);
                 }
             }
-        },true);
+        }, true);
         log.info("----------contextInitialize end--------------");
     }
 
     //添加项目id
-    private void addProject(PacketEntity packetEntity,String type){
+    private void addProject(PacketEntity packetEntity, String type) {
         String address = packetEntity.address;
-        packetEntity.setProjectId(projectClent.getProject(address,packetEntity.getContent().packetString));
+        packetEntity.setProjectId(projectClent.getProject(address, packetEntity.getContent().packetString));
         packetEntity.setType(type);
     }
 }