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