From 1a2b07f01ba4616fd9e894dddf474b56d020158c Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 07 四月 2025 15:18:51 +0800
Subject: [PATCH] 整理版本

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java |   87 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 87 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java
new file mode 100644
index 0000000..7bccddf
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java
@@ -0,0 +1,87 @@
+package com.dy.rtuMw.server.forTcp;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.mina.core.session.IoSession;
+
+import com.dy.common.mw.channel.tcp.TcpIoSessionAttrIdIsRtuAddr;
+import com.dy.common.mw.channel.tcp.TcpIoSessionEventCallback;
+import com.dy.common.mw.core.CoreUnit;
+import com.dy.rtuMw.server.tasks.RtuUpTask;
+
+public class TcpIoSessionCallback implements TcpIoSessionEventCallback{
+
+	private static Logger log = LogManager.getLogger(TcpIoSessionCallback.class.getName());
+
+    /**
+     * 缃戠粶杩炴帴鎵撳紑
+     */
+	public void sessionOpened(IoSession session) throws Exception {
+    	log.info("缃戠粶杩炴帴寤虹珛锛岀粓绔綉鍧�鏄細" + session.getRemoteAddress().toString()) ;
+		if(session != null) {
+			String rtuAddr = (String) session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrRtuAddr);
+			if(rtuAddr != null && !rtuAddr.trim().equals("")){
+				RtuLogDealer.log(rtuAddr, "缃戠粶鎺ュ叆");
+			}
+		}
+	}
+
+	/**
+	 * 缃戠粶杩炴帴鍏抽棴
+	 */
+	@Override
+	public void sessionClosed(IoSession session) throws Exception {
+		if(session != null){
+	     	String rtuAddr = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrRtuAddr) ;
+
+	     	if(rtuAddr != null && !rtuAddr.trim().equals("")){
+	     		//璁板綍鐘舵��
+	     		RtuStatusDealer.offLine(rtuAddr);
+				RtuLogDealer.log(rtuAddr, "缃戠粶杩炴帴鍏抽棴");
+	     	}
+	    	log.info("缃戠粶杩炴帴鍏抽棴锛�"
+	    			+ (rtuAddr==null?"":("缁堢鍦板潃鏄細" + rtuAddr))) ;
+	    			//+ (session==null?"":(session.getRemoteAddress() == null?"":(session.getRemoteAddress().toString()==null?"":("锛岀粓绔綉鍧�鏄細" + session.getRemoteAddress().toString()))))) ;
+		}
+ 	}
+	/**
+     * 鍙戠敓寮傚父
+     */
+    public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
+    	if(session != null && cause != null){
+    		String rtuAddr = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrRtuAddr) ;
+    		log.error("缃戠粶浼氳瘽鍙戠敓寮傚父锛�"
+    				+ (rtuAddr==null?"":("缁堢鍦板潃鏄細" + rtuAddr))
+    				+ (session==null?"":(session.getRemoteAddress() != null?("锛岀粓绔綉鍧�鏄細" + session.getRemoteAddress().toString()):""))
+    				+ "\n寮傚父娑堟伅锛�" + cause.getMessage(), cause);
+    	}
+    }
+	
+    /**
+     * TCP閫氶亾鍙戦�佸畬鏁版嵁鍚庯紝鍥炶皟鐨勬柟娉曪紝杩涜鍚庣画鏁版嵁澶勭悊
+     */
+    public void messageSended(IoSession session, Object message) throws Exception  {
+      	String rtuAddr = (String)session.getAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrRtuAddr) ;
+    	log.info("缃戠粶鍙戦�佷簡鏁版嵁锛�"
+    			+ (rtuAddr==null?"":("缁堢鍦板潃鏄細" + rtuAddr))
+    			+ (session==null?"":(session.getRemoteAddress() != null?("锛岀粓绔綉鍧�鏄細" + session.getRemoteAddress().toString()):"")) );
+    }
+
+    /**
+     * TCP閫氶亾鎺ユ敹鍒版暟鎹紝鍥炶皟鐨勬柟娉曪紝杩涜鏁版嵁澶勭悊
+     * 姝ゆ柟娉曡皟鐢ㄥ悗锛屼笂琛屾暟鎹劚绂讳簡NIO绾跨▼锛岃繘鍏ヤ簡鏍稿績绾跨▼
+     */
+	@Override
+	public void messageReceived(IoSession session, Object message)throws Exception {
+		if(session != null && message != null){
+			RtuUpTask task = new RtuUpTask() ;
+			task.data = new Object[]{session, (byte[])message} ;
+			try{
+				CoreUnit.getInstance().pushCoreTask(task);
+			}catch(Exception e){
+				log.error(e.getMessage(), e);
+			}
+		}
+	}
+
+}

--
Gitblit v1.8.0