示例#1
0
 public void CheckComunication()
 {
     List<RealSignalRequest> ids = new List<RealSignalRequest>();
     RealSignalRequest rsr = new RealSignalRequest();
     rsr.Idx = 1;
     rsr.Id = 1;
     ids.Add(rsr);
     RealHostRequestItem di = new RealHostRequestItem(String.Empty, Guid.NewGuid(), DistributeTypeEnum.Signal);
     guid = di.DistributeId;
     Byte[] buffer = GetRequestBytes(ids, di);
     SendData(buffer);
 }
示例#2
0
 public void CheckComunication()
 {
     List<RealSignalRequest> ids = new List<RealSignalRequest>();
     RealSignalRequest rsr = new RealSignalRequest();
     rsr.Idx = 1;
     rsr.Id = 1;
     ids.Add(rsr);
     Byte[] buffer = GetRequestBytes(ids);
     SendData(buffer);
     //IPAddress.NetworkToHostOrder
     
 }
示例#3
0
        /// <summary>
        /// 数据订阅方法,调用此方法来进行数据订阅。
        /// </summary>
        public bool Distribute(int DBHostIdx,int Idx)
        {
            //PageLogger.RecordDebugLog(String.Format("Distribute Signal DBHostIdx : {0} Idx : {1}", DBHostIdx, Idx));

            //获取实时服务器Id
            string realHostID = TCacheHostDetailDAL.Instance.GetCacheHostIdByDbHostId(DBHostIdx);
            RealHostRequestItem rhri=null;
            foreach (RealHostRequestItem o in m_CacheHostDistribute.Keys)
            {
                if (o.realHostID == realHostID)
                {
                    rhri = o;
                    break;
                }
            }
            if (rhri == null)
            {
                rhri = new RealHostRequestItem(realHostID, Guid.NewGuid(), DistributeTypeEnum.Signal);
                if (!m_CacheHostDistribute.ContainsKey(rhri))
                    m_CacheHostDistribute.Add(rhri, new List<DistributeItem>());
            }
                        
            DistributeItem nDi = new DistributeItem(DBHostIdx, Idx);
            nDi.realHostID = realHostID;
            List<RealSignalRequest> rsrs = new List<RealSignalRequest>();
            RealSignalRequest rsr = new RealSignalRequest();
            rsr.Idx = nDi.DBHostIdx;
            rsr.Id = nDi.Idx;
            rsrs.Add(rsr);
            nDi.ids = rsrs;

            bool hasExit = false;
            foreach (DistributeItem di in m_CacheHostDistribute[rhri])
            {
                if (di.DBHostIdx == DBHostIdx && di.Idx == Idx)
                {
                    di.LastVisit = DateTime.Now;
                    hasExit = true;
                    break;
                }
            }
            if (!hasExit)
            {
                m_CacheHostDistribute[rhri].Add(nDi);
                rhri.IdsModified = true;                
            }                       
            return true;
        }
示例#4
0
 public bool Equals(RealSignalRequest t1, RealSignalRequest t2)
 {
     return t1.Id == t2.Id && t1.Idx == t2.Idx;
 }