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