From e7d48d79b04175165144f4c8b079f2da3fec63cb Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 29 七月 2024 10:51:56 +0800
Subject: [PATCH] 1、通信中间件中,实现停止TCP服务和恢复TCP服务功能, 2、测试系统中增加本功能的测试项。

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpUnit.java |   26 ++++++++++++++++++++++++--
 1 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpUnit.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpUnit.java
index e0d83d6..2b8d31a 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpUnit.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/tcp/TcpUnit.java
@@ -22,6 +22,8 @@
 	private static boolean started = false ;
 	
 	private TcpUnitAdapter adapter ;
+	private TcpIoHandler tcpIoHandler ;
+	private DataCodecFactory dataCodecFactory ;
 	
 	private TcpUnit(){} ;
 	
@@ -94,7 +96,8 @@
 			//寰楀埌缃戠粶 閫氫俊鏁版嵁杩囨护鍣ㄩ摼
 			DefaultIoFilterChainBuilder chain = acceptor.getFilterChain() ;
 			//缂栬В鐮佽繃婊ゅ櫒
-			chain.addLast("protocol", new ProtocolCodecFilter(new DataCodecFactory(this.adapter)));
+			dataCodecFactory = new DataCodecFactory(this.adapter) ;
+			chain.addLast("protocol", new ProtocolCodecFilter(dataCodecFactory));
 			
 			/*
 			 * 涓�鑸珽xecutorFilter 閮借鏀惧湪ProtocolCodecFilter 杩囨护鍣ㄧ殑鍚庨潰锛�
@@ -106,7 +109,8 @@
 			chain.addLast("exceutor", new ExecutorFilter());
 
 			//涓氬姟閫昏緫澶勭悊鍣紝璐熻矗澶勭悊缃戠粶浼氳瘽鍙婅緭鍏ヨ緭鍑烘暟鎹�
-			acceptor.setHandler(new TcpIoHandler(this.adapter));
+			tcpIoHandler = new TcpIoHandler(this.adapter) ;
+			acceptor.setHandler(tcpIoHandler) ;
 
 			boolean isException = false ;
 			try {
@@ -129,8 +133,26 @@
 		}
 	}
 
+	/**
+	 * 鍋滄妯″潡杩愯锛屽皢涓嶅啀鎺ュ叆TCP缃戠粶杩炴帴锛屽苟鎶婂凡缁弔cp杩炴帴鐨勫叏閮ㄦ柇杩炴帴
+	 * @param callback
+	 * @throws Exception
+	 */
 	@Override
 	public void stop(UnitStartedCallbackInterface callback) throws Exception {
+		this.tcpIoHandler.stop();
+		this.dataCodecFactory.stop();
+		this.adapter.newUnitStopCallback().callback();
+		callback.call(null);
+	}
+
+	/**
+	 * 瑙i櫎鍋滄锛屾仮澶峊CP鏈嶅姟杩愯
+	 * @throws Exception
+	 */
+	public void recover() throws Exception {
+		this.tcpIoHandler.recover();
+		this.dataCodecFactory.recover();
 	}
 	
 

--
Gitblit v1.8.0