using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using IStation.Model; namespace IStation.DataDockingSocket { public class HandleHelper : IDataDockingSocket.IHandleHelper { /// /// 处理注册码 /// public void HandleRegisterCode(IMonitorDataDockingSession session) { if (session == null) return; if (!session.IsConnected) return; if (SessionHelper.Cache != null) { if (SessionHelper.Cache != session) { if (SessionHelper.Cache.IsConnected) { SessionHelper.Cache.Close($"{session.SessionName} 中,产生新的会话!"); } } } SessionHelper.Cache = session; var appParas = AppParasHelper.Get(); if (appParas == null) { LogHelper.Error("Socket 数据对接中,NT 缺少数据对接配置文件"); return; } foreach (var item in appParas.InstructionItems) { SendInstructionJobHelper.StartJob(session, item); Thread.Sleep(appParas.InstructionSendSpace * 1000); } } /// /// 处理心跳包 /// public void HandleHeartbeat(IMonitorDataDockingSession session) { } /// /// 处理数据 /// public void HandleData ( IMonitorDataDockingSession session, byte[] bytes, List mappers, Action> receive ) { if (session == null) return; if (!session.IsConnected) return; if (bytes == null) return; var appParas = AppParasHelper.Get(); if (appParas == null) { LogHelper.Error("Socket 数据对接中,NT 缺少数据对接配置文件"); return; } var receList = HandleDataHelper.HandleData(bytes); if (receList != null && receList.Count > 0) { receive(receList); } if (appParas.Src) { SrcHelper.Src(bytes); } if (appParas.Debug) { DebugHelper.Debug(receList); } } } }