From b63eef2cfb054b1ead234ab93e05a2aa28775d91 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 17 四月 2025 14:54:26 +0800
Subject: [PATCH] 优化灌溉计划发布前判断条件

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpIoHandler.java |  103 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 103 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpIoHandler.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpIoHandler.java
new file mode 100644
index 0000000..fe53fdb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpIoHandler.java
@@ -0,0 +1,103 @@
+package com.dy.common.mw.channel.tcp;
+
+import org.apache.mina.core.service.IoHandlerAdapter;
+import org.apache.mina.core.session.IdleStatus;
+import org.apache.mina.core.session.IoSession;
+
+public class TcpIoHandler extends IoHandlerAdapter {
+
+	private TcpUnitAdapter adapter ;
+
+	private boolean stop = false ;//涓簍rue鏃讹紝鍋滄TCP鏈嶅姟锛屽苟鎶婂凡缁廡CP杩炴帴鏂繛鎺�
+
+	public TcpIoHandler(TcpUnitAdapter adapter){
+		this.adapter = adapter ;
+	}
+
+	public void stop(){
+		stop = true ;
+	}
+
+	public void recover(){
+		this.stop = false ;
+	}
+
+	/**
+	 * 鍒涘缓浜嗕細璇�
+	 */
+	@Override
+	public void sessionCreated(IoSession session) throws Exception {
+		if(stop){
+			session.closeNow() ;
+		}else{
+			super.sessionCreated(session);
+		}
+	}
+   
+	/**
+     * 浼氳瘽open鏃跺洖璋冪殑鏂规硶 
+     */
+    public void sessionOpened(IoSession session) throws Exception {
+		if(stop){
+			session.closeNow() ;
+		}else{
+			this.adapter.newSessionEventCallback().sessionOpened(session);
+		}
+    }
+    
+	/**
+	 * 浼氳瘽绌洪棽
+	 */
+	@Override
+	public void sessionIdle(IoSession session, IdleStatus status)
+			throws Exception {
+		super.sessionIdle(session, status);
+	}
+	
+    /**
+     * 杈撳叆鍏抽棴
+     */
+	@Override
+	public void inputClosed(IoSession session) throws Exception {
+		super.inputClosed(session);
+	}
+	
+    /**
+    * 缃戠粶鍏抽棴
+    */
+   @Override
+	public void sessionClosed(IoSession session) throws Exception {
+      	this.adapter.newSessionEventCallback().sessionClosed(session);
+		super.sessionClosed(session);
+	}
+
+   /**
+     * 鍙戠敓寮傚父
+     */
+   @Override
+   public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
+		this.adapter.newSessionEventCallback().exceptionCaught(session, cause);
+    }
+    
+	/**
+	 * 娑堟伅鍙戦�佷簡
+	 */
+	@Override
+	public void messageSent(IoSession session, Object message) throws Exception {
+		super.messageSent(session, message);
+		this.adapter.newSessionEventCallback().messageSended(session, message);
+	}
+
+    /**
+     * 鎺ユ敹鍒版暟鎹悗锛屽洖璋冪殑鏂规硶锛岃繘琛屾暟鎹鐞�
+     */
+	@Override
+    public void messageReceived(IoSession session, Object message) throws Exception {
+		if(stop){
+			session.closeNow() ;
+		}else{
+			this.adapter.newSessionEventCallback().messageReceived(session, message);
+		}
+    }
+
+}

--
Gitblit v1.8.0