From b3b17b231e2f2840332ce6eb96f791865fdec6d5 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 14 四月 2025 16:38:16 +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