Esempio n. 1
0
        public static void DeviceControl(string requestDataJson, UDPClientItemBusiness.ClientItem item)
        {
            object outModel     = null;
            object requestModel = null;

            DataFactory.CreateResponseProtocolData(TransmiteEnum.远程设备控制指令, requestDataJson, ref requestModel, ref outModel);
            DeviceControlAnswerRequestDataModel requestDataModel  = (DeviceControlAnswerRequestDataModel)requestModel;
            DeviceControlOutParmasModel         responseDataModel = (DeviceControlOutParmasModel)outModel;
            UDPSocketAnswerModel answerModel = null;
            string orderId  = string.Empty;
            bool   bSuccess = GetResponseModelResultCode(responseDataModel.ResponseModel);

            answerModel = UDPSocketAnswerBusiness.GetAnswerModel(requestDataModel.SN);
            if (requestDataModel.Result_Code == "1" && bSuccess && UDPSocketAnswerBusiness.ExistSN(requestDataModel.SN))
            {
                //如果应答结果正确,清除应答缓存,添加对手机号的接口调用锁定
                UDPSocketAnswerBusiness.Remove(requestDataModel.SN);
            }
            string logTxt     = "[接收:" + requestDataJson + "]" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
            string radarToken = string.Empty;

            if (answerModel != null && XCGameRadarDeviceTokenBusiness.GetRouteDeviceToken(requestDataModel.StoreId, answerModel.Segment, out radarToken))
            {
            }
            UDPLogHelper.SaveUDPDeviceControlLog(requestDataModel.StoreId, requestDataModel.OrderId, ((IPEndPoint)item.remotePoint).Address.ToString(), ((IPEndPoint)item.remotePoint).Port, requestDataModel.SN, requestDataJson, responseDataModel.ResponseJson, bSuccess, logTxt);
            string message = "[接收:" + requestDataJson + "]" + "[响应:" + responseDataModel.ResponseJson + "]";

            SignalrServerToClient.BroadcastMessage(Convert.ToInt32(TransmiteEnum.雷达心跳), "远程设备控制指令响应", radarToken, message, System.DateTime.Now);
        }
Esempio n. 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            UDPSocketAnswerModel answerModel = new UDPSocketAnswerModel("192.168.1.145", 50, null, "1234567890", System.DateTime.Now, "15618920033", "100027", "0001", "20171014300027", 10, "23432");

            UDPSocketAnswerBusiness.SetAnswer(answerModel);

            string key   = "100027" + "_" + "0001";
            string token = "62fb63fcc33c246999246cb440e24b1b0";

            XCGameRouteDeviceCache.AddToken(key, token);
        }
Esempio n. 3
0
        static void FailResponseProcess()
        {
            if (UDPSocketAnswerBusiness.UDPSocketAnswer.Count > 0)
            {
                var query = from item in UDPSocketAnswerBusiness.UDPSocketAnswer.Cast <DictionaryEntry>()
                            where ((UDPSocketAnswerModel)item.Value).CreateTime < DateTime.Now.AddSeconds(-10)
                            select item.Key.ToString();

                if (query.Count() > 0)
                {
                    foreach (var key in query.ToList <string>())
                    {
                        UDPSocketAnswerModel model = UDPSocketAnswerBusiness.GetAnswerModel(key);
                        XCCloudService.SocketService.UDP.Server.Send(model.IP, model.Port, model.Data);
                    }
                }
                Thread.Sleep(1000);
            }
        }
 /// <summary>
 /// 设置应答缓存
 /// </summary>
 /// <param name="answerModel">应答模式对象,用于接收端无响应时重新发送</param>
 /// <returns></returns>
 public static string SetAnswer(UDPSocketAnswerModel answerModel)
 {
     UDPSocketAnswerCache.AddAnswer(answerModel.SN, answerModel);
     return(sn.ToString());
 }