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); }
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); } }