From b37a5b33330eb53b3a80adf5b1949313139a0619 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 22 七月 2024 16:26:44 +0800
Subject: [PATCH] 实现月统计Listener
---
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java | 39 ++++++++++++++++++++++++++++++++-------
1 files changed, 32 insertions(+), 7 deletions(-)
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
index 8d37adf..e821b47 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
@@ -2,12 +2,10 @@
import java.net.InetAddress;
import java.net.InetSocketAddress;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
import java.util.Map.Entry;
+import com.dy.common.util.DateTime;
import org.apache.mina.core.session.IoSession;
import com.dy.rtuMw.server.ServerProperties;
@@ -189,27 +187,54 @@
TcpSession tcpSe = sessionTable.get(rtuAddr) ;
if(tcpSe != null){
tcpSe.lastUpDataTime = System.currentTimeMillis() ;
+ tcpSe.lastUpDataTimeForOnlineCtrl = System.currentTimeMillis() ;
}
}
/**
* 鏇存柊涓婅鏁版嵁鏃跺埢
* 褰撲笂琛屾暟鎹椂鍒诲凡缁忚繃鍘讳竴瀹氭椂闀匡紝涓婅鏁版嵁鏃跺埢娓呯┖
+ * 褰撲竴瀹氭椂闂村唴娌℃湁涓婅鏁版嵁锛屽垯璁や负RTU绂荤嚎
*/
- public static void updateUpDataTime(Long now){
+ public static void updateRtuStatus(Long now){
synchronized (sessionTable){
- Iterator<TcpSession> it = sessionTable.values().iterator() ;
+ Set<Map.Entry<String, TcpSession>> entrySet = sessionTable.entrySet() ;
+ Iterator<Map.Entry<String, TcpSession>> it = entrySet.iterator() ;
+ Map.Entry<String, TcpSession> entry ;
TcpSession tcpSe ;
while(it.hasNext()){
- tcpSe = it.next() ;
+ entry = it.next() ;
+ tcpSe = entry.getValue();
if(tcpSe.lastUpDataTime != null){
if(now - tcpSe.lastUpDataTime > ServerProperties.lastUpDataTimeLive){
tcpSe.lastUpDataTime = null ;
}
}
+ if(tcpSe.lastUpDataTimeForOnlineCtrl != null){
+ if(tcpSe.ioSession != null && tcpSe.ioSession.isConnected()){
+ if(now - tcpSe.lastUpDataTimeForOnlineCtrl > ServerProperties.disconnectedByNoUpDataMinutes){
+ tcpSe.ioSession.closeNow() ;
+ }
+ }
+ }
}
}
}
+// public static void updateRtuStatus(Long now){
+// synchronized (sessionTable){
+// Iterator<TcpSession> it = sessionTable.values().iterator() ;
+// TcpSession tcpSe ;
+// while(it.hasNext()){
+// tcpSe = it.next() ;
+// if(tcpSe.lastUpDataTime != null){
+// if(now - tcpSe.lastUpDataTime > ServerProperties.lastUpDataTimeLive){
+// tcpSe.lastUpDataTime = null ;
+// }
+// }
+// }
+// }
+// }
+
}
--
Gitblit v1.8.0