Пример #1
0
 /// <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);
     }
 }
Пример #2
0
        /// <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());
            }
        }