///// <summary> ///// 初始化 ///// </summary> public void Init() { try { pNetInfo = dal.GetParameterNetInfo(); //定义通信类 if (pNetInfo != null) { InnerComm = new InnerCommEntrance(pNetInfo.BroadcastIP, pNetInfo.CommonPort, pNetInfo.GpsServerIPList, pNetInfo.GpsPort, pNetInfo.CtiServerIP, pNetInfo.CtiPort); InnerComm.GetReceiveBroadcastInstence().ReceiveAmbulanceChange += new OnReceiveAmbulanceChangeDelegate(AmbulanceChange); //InnerComm.GetReceiveGPSInstence().ReceiveGpsChange += new OnReceiveGPSChangeDelegate(GpsChange); InnerComm.ReceiveThreadStart(); //启动内部通信接收 InnerComm.GetReceiveGPSInstence().ReceiveGPSThreadStart(); //启动GPS接收 OnShowMessage(AnchorEnum.EMessageLevel.EML_INFO, "内部通信初始化成功"); //LogUtility.Debug("InnerCommBLL/Init", "内部通信初始化成功"); } else { OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "内部通信初始化失败:相关参数可能为空"); LogUtility.Debug("InnerCommBLL/Init", "内部通信初始化失败:相关参数可能为空"); } } catch (Exception ex) { OnShowMessage(AnchorEnum.EMessageLevel.EML_ERROR, "内部通信初始化失败" + ex.Message); LogUtility.Error("InnerCommBLL/Init(),内部通信初始化失败:", ex.Message); } }
/// <summary> /// 取服务器IP Port 类的实体---移植自上海微信预约项目 /// </summary> /// <returns></returns> public ParameterNetInfo GetParameterNetInfo() { StringBuilder sb = new StringBuilder(); sb.Append(@" select 广播掩码=case when 编码=2 then IP地址 else '' end, 内部通信端口=case when 编码=2 then 端口号码 else 0 end, GPS服务器IP列表=case when 编码=1 then IP地址 else '' end, GPS服务器端口=case when 编码=1 then 端口号码 else 0 end, CTI服务器IP=case when 编码=0 then IP地址 else '' end, CTI服务器端口=case when 编码=0 then 端口号码 else 0 end into #temp from TParameterNet declare @str1 varchar(8000) declare @str2 int declare @str3 varchar(8000) declare @str4 int declare @str5 varchar(8000) declare @str6 int select @str1=ISNULL(@str1,'')+#temp.广播掩码 from #temp select @str2=ISNULL(@str2,'')+#temp.内部通信端口 from #temp select @str3=ISNULL(@str3,'')+#temp.GPS服务器IP列表 from #temp select @str4=ISNULL(@str4,'')+#temp.GPS服务器端口 from #temp select @str5=ISNULL(@str5,'')+#temp.CTI服务器IP from #temp select @str6=ISNULL(@str6,'')+#temp.CTI服务器端口 from #temp select 广播掩码=@str1,内部通信端口=@str2,GPS服务器IP列表=@str3, GPS服务器端口=@str4,CTI服务器IP=@str5,CTI服务器端口=@str6 drop table #temp "); using (SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.DispatchString, CommandType.Text, sb.ToString(), null)) { ParameterNetInfo info = new ParameterNetInfo(); if (dr.Read()) { info.BroadcastIP = dr["广播掩码"].ToString(); info.CommonPort = Convert.ToInt32(dr["内部通信端口"]); string IPList = dr["GPS服务器IP列表"].ToString(); string[] ipArr = IPList.Split(','); List <string> ipList = new List <string>(); ipList = ipArr.ToList(); info.GpsServerIPList = ipList; info.GpsPort = Convert.ToInt32(dr["GPS服务器端口"]); info.CtiServerIP = dr["CTI服务器IP"].ToString(); info.CtiPort = Convert.ToInt32(dr["CTI服务器端口"]); } //dr.Close(); return(info); } }
private InnerCommEntrance GetInstance() { if (Entrance == null) { lock (lockObj) { if (Entrance == null) { //BasicHttpBinding binding = new BasicHttpBinding(); //binding.Name = "ServiceSoap"; //binding.CloseTimeout = new TimeSpan(0, 1, 0); //binding.OpenTimeout = new TimeSpan(0, 1, 0); //binding.ReceiveTimeout = new TimeSpan(0, 10, 0); //binding.SendTimeout = new TimeSpan(0, 1, 0); //binding.AllowCookies = false; //binding.BypassProxyOnLocal = false; //binding.MaxBufferSize = 65536; //binding.MaxBufferPoolSize = 524288; //binding.MaxReceivedMessageSize = 65536; //binding.MessageEncoding = WSMessageEncoding.Text; //binding.TextEncoding = Encoding.UTF8; //binding.TransferMode = TransferMode.Buffered; //binding.UseDefaultWebProxy = true; //binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard; //binding.Security.Mode = BasicHttpSecurityMode.None; //XmlDictionaryReaderQuotas readerQuotas = new XmlDictionaryReaderQuotas(); //readerQuotas.MaxDepth=32 ; //readerQuotas.MaxStringContentLength=8192; //readerQuotas.MaxArrayLength=16384; //readerQuotas.MaxBytesPerRead=4096; //readerQuotas.MaxNameTableCharCount=16384; //binding.ReaderQuotas = readerQuotas; //EndpointAddress baseAddress = new EndpointAddress(AppConfig.CoreServiceUrl); //CoreServiceV7.ServiceSoap coreService = new CoreServiceV7.ServiceSoapClient(binding,baseAddress); ParameterNetInfo netinfo = CoreService.GetParameterNetInfo(1);;//中心 List <string> GPSIPlist = new List <string>(netinfo.GpsServerIPList); Entrance = new InnerCommEntrance(netinfo.BroadcastIP, netinfo.CommonPort, netinfo.CtiServerIP, netinfo.CtiPort, GPSIPlist, netinfo.GpsPort, netinfo.RecordPort); } } } return(Entrance); }