/// <summary> /// 处理数据然后回发数据 /// </summary> /// <param name="Param"></param> /// <param name="CallHandle"></param> public static void CallBackHandler(SocketMiddleData Param, CallHandleAbstract CallHandle) { if (Param.SendType == SendTypeEnum.RequestInfo) { var ResultData = CallHandle.ExecuteCallFuncHandler(Param); CallBackInternalInfo(ResultData, Param.SendPort); } }
/// <summary> /// 初始化内部通信 /// </summary> /// <param name="Ip"></param> /// <param name="Port"></param> /// <param name="MiddleData"></param> protected virtual void InitInternalSocket(string Ip, int Port, SocketMiddleData MiddleData) { if (CallHandle == null) { CallHandle = new CallHandle(); } AsyncTcpClient ClientAsnyc = SocketFactory.CreateClient <AsyncTcpClient, SocketPacket>(Ip, Port); if (!ClientPath.IsNullOrEmpty() && ClientPort.HasValue) { ClientAsnyc.LocalEndPoint = new IPEndPoint(IPAddress.Parse(ClientPath), ClientPort.Value); } ClientAsnyc.Connect(out bool Connect); Call.SocketClient = ClientAsnyc; ClientAsnyc.PacketReceive = (Client, Data) => { DependencyCondition Instance = DependencyCondition.Instance; if (Instance.ExecuteIsCall(Data) != SendTypeEnum.CallBack) { var MiddleData = Instance.ExecuteMapper(Data); if (Client.IsConnected) { Call.CallBackHandler(MiddleData, CallHandle); } } else { Instance.ExecuteCallData(Data); } }; ClientAsnyc.ClientError = (Client, Error) => { DependencyError.Instance.ExecuteRecordLog(Error); }; if (MiddleData.SendType == SendTypeEnum.Init) { ClientAsnyc.Send(MiddleData.ToJson()); } }