| package com.dy.simRtu.tcpClient; | 
|   | 
| import com.dy.common.util.Callback; | 
| import com.dy.simRtu.ServerProperties; | 
| import com.dy.simRtu.tcpClient.upData.UpData; | 
| import com.dy.simRtu.tcpClient.upData.UpHeartBeat; | 
| import org.apache.logging.log4j.LogManager; | 
| import org.apache.logging.log4j.Logger; | 
| import org.apache.mina.core.session.IoSession; | 
|   | 
| /** | 
|  * @Author: liurunyu | 
|  * @Date: 2024/12/6 8:49 | 
|  * @Description | 
|  */ | 
| public class Worker { | 
|   | 
|     private static final Logger log = LogManager.getLogger(TcpClUnit.class) ; | 
|   | 
|     private static Worker instance = new Worker() ; | 
|   | 
|     private static TcpClUnitConfigVo confVo ; | 
|   | 
|     public static IoSession session ; | 
|   | 
|     private Worker(){ | 
|     } | 
|   | 
|     public static Worker getInstance(TcpClUnitConfigVo confVo){ | 
|         Worker.confVo = confVo ; | 
|         return instance ; | 
|     } | 
|   | 
|     public void doStart(){ | 
|         new Thread(() -> { | 
|             Exception ex ; | 
|             while(true){ | 
|                 ex = null ; | 
|                 try { | 
|                     new TcpConnect().createSession( | 
|                             confVo.mwServerIp, | 
|                             confVo.mwServerPort, | 
|                             confVo.connectTimeout, | 
|                             new TcpHandler(), | 
|                             new Callback() { | 
|                                 @Override | 
|                                 public void call(Object obj) { | 
|                                     if (obj == null) { | 
|                                         log.error("创建网络会话返回为null"); | 
|                                     } else { | 
|                                         Worker.session = (IoSession) obj; | 
|                                         log.info("成功创建与通信中间件的网络连接"); | 
|                                         UpData.setSession(Worker.session); | 
|                                         heartBeat() ; | 
|                                     } | 
|                                 } | 
|                                 @Override | 
|                                 public void call(Object... objs) { | 
|                                 } | 
|                                 @Override | 
|                                 public void exception(Exception e) { | 
|                                 } | 
|                             }); | 
|                 }catch (Exception e){ | 
|                     ex = e ; | 
|                 } | 
|                 if(ex == null){ | 
|                     break ; | 
|                 }else{ | 
|                     try{ | 
|                         Thread.sleep(100); | 
|                     }catch (Exception e){ | 
|                     } | 
|                 } | 
|             } | 
|         }).start(); | 
|     } | 
|   | 
|   | 
|     private void heartBeat(){ | 
|         new Thread(new Runnable(){ | 
|             @Override | 
|             public void run() { | 
|                 while(true){ | 
|                     try { | 
|                         UpHeartBeat.upCd02Data(ServerProperties.rtuAddr); | 
|                         Thread.sleep(30000L); | 
|                         //Thread.sleep(30000000L); | 
|                     }catch (Exception e){ | 
|                         continue; | 
|                     } | 
|                 } | 
|             } | 
|         }).start(); | 
|     } | 
| } |