コード例 #1
0
        private string HandlerGetMsgReturnData(string returnData, bool IsError)
        {
            //CommonVariables.LogTool.Log("recive mds return data:" + returnData);
            if (IsError)
            {
                return(string.Empty);
            }

            if (!string.IsNullOrEmpty(returnData))
            {
                if (returnData.StartsWith(CommonFlag.F_MCSVerfiyMDSMSG))
                {
                    string tempStr = returnData.Remove(0, CommonFlag.F_MCSVerfiyMDSMSG.Length);

                    MsgRecord tempMsgRecord = CommonVariables.serializer.Deserialize <MsgRecord>(tempStr);
                    if (tempMsgRecord != null)
                    {
                        if (!string.IsNullOrEmpty(tempMsgRecord.MsgID))
                        {
                            AddMsgIntoOutBuffer(tempMsgRecord);
                            return(CommonFlag.F_MDSReciveMCSFBMSG + tempMsgRecord.MsgID);
                        }
                    }
                }
            }
            return(string.Empty);
        }
コード例 #2
0
 public void AddMSgRecordIntoBuffer(MsgRecord msgRecord)
 {
     if (!GetUsingMsgRecordBuffer.ContainsKey(msgRecord.MsgID))
     {
         GetUsingMsgRecordBuffer.Add(msgRecord.MsgID, msgRecord);
     }
 }
コード例 #3
0
        /// <summary>
        /// 注册消息封装
        /// </summary>
        public void RegisterMsg(string _msgName, Action <object> _handle)
        {
            EventsUtil.RegisterMsg(_msgName, _handle);
            MsgRecord _record = MsgRecord.Allocate(_msgName, _handle);

            mMsgRecorder.Add(_record);
        }
コード例 #4
0
        public async Task <IActionResult> PutMsgRecord(int id, MsgRecord msgRecord)
        {
            if (id != msgRecord.Id)
            {
                return(BadRequest());
            }

            _context.Entry(msgRecord).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MsgRecordExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #5
0
        public async Task <ActionResult <MsgRecord> > PostMsgRecord(MsgRecord msgRecord)
        {
            _context.MsgRecords.Add(msgRecord);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetMsgRecord", new { id = msgRecord.Id }, msgRecord));
        }
コード例 #6
0
        private string HandleMDSVerifyMCSMSG(string data, MDSListenerToken token)
        {
            string         tempStr  = data.Remove(0, CommonFlag.F_MDSVerifyMCSMSG.Length);
            MsgRecordModel msgModel = CommonVariables.serializer.Deserialize <MsgRecordModel>(tempStr);

            if (msgModel != null)
            {
                if (!string.IsNullOrEmpty(msgModel.MsgSenderObjectID))
                {
                    MsgRecord msgReocod = CommonVariables.MessageContorl.AddMSgRecordIntoBuffer(msgModel);

                    foreach (MCSServer mcsServer in CommonVariables.MCSServers)
                    {
                        if (mcsServer.ArrangeStr.Contains(msgReocod.MsgRecipientObjectID.Substring(0, 1)))
                        {
                            CommonVariables.MessageContorl.SendMsgToMCS(mcsServer, msgReocod);
                            break;
                        }
                    }

                    return(msgModel.MsgID);
                }
            }
            return(string.Empty);
        }
コード例 #7
0
        public void AddMsgIntoSendBuffer(MCSServer mcsServer, MsgRecord msgRecord)
        {
            if (!exeSendMsgRecords1Buffer.ContainsKey(msgRecord.MsgID))
            {
                MsgRecordModel msgRecordmodel = new MsgRecordModel();
                msgRecordmodel.IsSended             = msgRecord.IsSended;
                msgRecordmodel.MCS_IP               = mcsServer.MCS_IP;
                msgRecordmodel.MCS_Port             = mcsServer.MCS_Port;
                msgRecordmodel.MDS_IP               = CommonVariables.MDSIP;
                msgRecordmodel.MDS_Port             = CommonVariables.MDSPort;
                msgRecordmodel.MsgContent           = msgRecord.MsgContent;
                msgRecordmodel.MsgID                = msgRecord.MsgID;
                msgRecordmodel.MsgRecipientGroupID  = msgRecord.MsgRecipientGroupID;
                msgRecordmodel.MsgRecipientObjectID = msgRecord.MsgRecipientObjectID;
                msgRecordmodel.MsgSenderName        = msgRecord.MsgSenderName;
                msgRecordmodel.MsgSenderObjectID    = msgRecord.MsgSenderObjectID;
                msgRecordmodel.MsgType              = msgRecord.MsgType;
                msgRecordmodel.reTryCount           = 1;
                msgRecordmodel.SendTime             = msgRecord.SendTime;
                msgRecordmodel.ExeSendTime          = DateTime.Now.ToString(CommonFlag.F_DateTimeFormat);

                CommonVariables.Listener.SendMsg(msgRecordmodel.MCS_IP, msgRecordmodel.MCS_Port,
                                                 CommonFlag.F_MCSVerfiyMDSMSG + JsonConvert.SerializeObject(msgRecord), msgRecordmodel.MsgID);
                exeSendMsgRecords1Buffer.Add(msgRecordmodel.MsgID, msgRecordmodel);
            }
        }
コード例 #8
0
            public static MsgRecord Allocate(string msgName, Action <object> onReceived)
            {
                MsgRecord msgRecord = _msgRecordPool.Count > 0 ? _msgRecordPool.Pop() : new MsgRecord();

                msgRecord.msgName    = msgName;
                msgRecord.onReceived = onReceived;
                return(msgRecord);
            }
コード例 #9
0
 public override void AddMsgRecord(MsgRecord msgRecord)
 {
     base.AddMsgRecord(msgRecord);
     _MsgRecordCount++;
     if (_MsgRecordCount == CommonVariables.MsgOutContainerCount)
     {
         saveTime = msgRecord.SendTime;
     }
 }
コード例 #10
0
            public static MsgRecord Allocate(string msgName, Action <object> onMsgReceived)
            {
                MsgRecord retRecord = MsgRecordPool.Count > 0 ? MsgRecordPool.Pop() : new MsgRecord();

                retRecord.Name          = msgName;
                retRecord.OnMsgReceived = onMsgReceived;

                return(retRecord);
            }
コード例 #11
0
        private bool CheckMsg(MsgRecord msgRecord)
        {
            bool IsWholeTrue = true;

            if (string.IsNullOrEmpty(msgRecord.MsgSenderObjectID))
            {
                IsWholeTrue = false;
            }

            return(IsWholeTrue);
        }
コード例 #12
0
        public void Handler(object msgstr)
        {
            MsgRecord msgRecord = UnboxMsg(msgstr.ToString());


            if (!CheckMsg(msgRecord))
            {
                return;
            }

            CommonVariables.MsgRecordContainer.AddMsg(msgRecord);
        }
コード例 #13
0
        private MsgRecord UnboxMsg(string msg)
        {
            string tempMsg = msg;

            MsgRecord msgModel = new MsgRecord();

            if (tempMsg.IndexOf(CommonFlag.F_ObjectID) >= 0 && tempMsg.IndexOf(CommonFlag.F_ObjectID) < tempMsg.IndexOf(CommonFlag.F_Content))
            {
                msgModel.MsgSenderObjectID = tempMsg.Substring(tempMsg.IndexOf(CommonFlag.F_ObjectID) + CommonFlag.F_ObjectID.Length,
                                                               tempMsg.IndexOf(";", tempMsg.IndexOf(CommonFlag.F_ObjectID)) - tempMsg.IndexOf(CommonFlag.F_ObjectID) - CommonFlag.F_ObjectID.Length);
                tempMsg = tempMsg.Replace(CommonFlag.F_ObjectID + msgModel.MsgSenderObjectID + ";", "");
            }

            if (tempMsg.IndexOf(CommonFlag.F_MsgType) >= 0 && tempMsg.IndexOf(CommonFlag.F_MsgType) < tempMsg.IndexOf(CommonFlag.F_Content))
            {
                msgModel.MsgType = Convert.ToInt32(tempMsg.Substring(tempMsg.IndexOf(CommonFlag.F_MsgType) + CommonFlag.F_MsgType.Length,
                                                                     tempMsg.IndexOf(";", tempMsg.IndexOf(CommonFlag.F_MsgType)) - tempMsg.IndexOf(CommonFlag.F_MsgType) - CommonFlag.F_MsgType.Length));
                tempMsg = tempMsg.Replace(CommonFlag.F_MsgType + msgModel.MsgType + ";", "");
            }

            if (tempMsg.IndexOf(CommonFlag.F_RecivedObjectID) >= 0 && tempMsg.IndexOf(CommonFlag.F_RecivedObjectID) < tempMsg.IndexOf(CommonFlag.F_Content))
            {
                msgModel.MsgRecipientObjectID = tempMsg.Substring(tempMsg.IndexOf(CommonFlag.F_RecivedObjectID) + CommonFlag.F_RecivedObjectID.Length,
                                                                  tempMsg.IndexOf(";", tempMsg.IndexOf(CommonFlag.F_RecivedObjectID)) - tempMsg.IndexOf(CommonFlag.F_RecivedObjectID) - CommonFlag.F_RecivedObjectID.Length);
                tempMsg = tempMsg.Replace(CommonFlag.F_RecivedObjectID + msgModel.MsgRecipientObjectID + ";", "");
            }

            if (tempMsg.IndexOf(CommonFlag.F_RecivedObjectID2) >= 0 && tempMsg.IndexOf(CommonFlag.F_RecivedObjectID2) < tempMsg.IndexOf(CommonFlag.F_Content))
            {
                msgModel.MsgRecipientObjectID2 = tempMsg.Substring(tempMsg.IndexOf(CommonFlag.F_RecivedObjectID2) + CommonFlag.F_RecivedObjectID2.Length,
                                                                   tempMsg.IndexOf(";", tempMsg.IndexOf(CommonFlag.F_RecivedObjectID2)) - tempMsg.IndexOf(CommonFlag.F_RecivedObjectID2) - CommonFlag.F_RecivedObjectID2.Length);
                tempMsg = tempMsg.Replace(CommonFlag.F_RecivedObjectID2 + msgModel.MsgRecipientObjectID2 + ";", "");
            }

            if (tempMsg.IndexOf(CommonFlag.F_SendType) >= 0 && tempMsg.IndexOf(CommonFlag.F_SendType) < tempMsg.IndexOf(CommonFlag.F_Content))
            {
                msgModel.SendType = Convert.ToInt32(tempMsg.Substring(tempMsg.IndexOf(CommonFlag.F_SendType) + CommonFlag.F_SendType.Length,
                                                                      tempMsg.IndexOf(";", tempMsg.IndexOf(CommonFlag.F_SendType)) - tempMsg.IndexOf(CommonFlag.F_SendType) - CommonFlag.F_SendType.Length));
                tempMsg = tempMsg.Replace(CommonFlag.F_SendType + msgModel.SendType + ";", "");
            }

            if (tempMsg.IndexOf(CommonFlag.F_Content) >= 0)
            {
                msgModel.MsgContent = tempMsg.Replace(CommonFlag.F_Content, "");
                //tempMsg = tempMsg.Replace(CommonFlag.F_SendType + msgModel.SendType + ";", "");
            }

            msgModel.SendTime = DateTime.Now;

            return(msgModel);
        }
コード例 #14
0
        public void AddMsgRecord(MsgRecord msgRecord)
        {
            lock (_MsgContainer)
            {
                _islocked = true;
                _MsgContainer.Add(msgRecord);

                if (_MsgContainer.Count == CommonVariables.MsgContainerFullCount)
                {
                    _isFull = true;
                }
            }
            _islocked = false;
        }
コード例 #15
0
        private MsgRecordModel ModelTransfor(MsgRecord msgRecord)
        {
            MsgRecordModel msgRecordModel = new MsgRecordModel();

            msgRecordModel.IsSended             = msgRecord.IsSended;
            msgRecordModel.MsgContent           = msgRecord.MsgContent;
            msgRecordModel.MsgID                = msgRecord.MsgContent;
            msgRecordModel.MsgRecipientGroupID  = msgRecord.MsgRecipientGroupID;
            msgRecordModel.MsgRecipientObjectID = msgRecord.MsgRecipientObjectID;
            msgRecordModel.MsgSenderName        = msgRecord.MsgSenderName;
            msgRecordModel.MsgSenderObjectID    = msgRecord.MsgSenderObjectID;
            msgRecordModel.MsgType              = msgRecord.MsgType;
            msgRecordModel.SendTime             = msgRecord.SendTime;
            return(msgRecordModel);
        }
コード例 #16
0
        public void AddMsgIntoOutBuffer(MsgRecord msgRecord)
        {
            if (clientModels.ContainsKey(msgRecord.MsgRecipientObjectID))
            {
                //if (clientModels[msgRecord.MsgRecipientObjectID].LatestTime.CompareTo(msgRecord.SendTime) < 0)
                //{
                //    clientModels[msgRecord.MsgRecipientObjectID].LatestTime = msgRecord.SendTime;
                //}

                MsgRecordModel msgRecordModel = ModelTransfor(msgRecord);
                msgRecordModel.Client_IP   = clientModels[msgRecord.MsgRecipientObjectID].Client_IP;
                msgRecordModel.Client_Port = clientModels[msgRecord.MsgRecipientObjectID].Client_Port;
                GetUsingMsgRecordBufferToUA.Add(msgRecordModel);
            }
        }
コード例 #17
0
        public MsgRecord AddMSgRecordIntoBuffer(MsgRecordModel msgRecordModel)
        {
            MsgRecord msgRecord = new MsgRecord();

            msgRecord.MsgRecipientGroupID = msgRecordModel.MsgRecipientGroupID;
            msgRecord.MsgContent          = msgRecordModel.MsgContent;
            msgRecord.MsgID = msgRecordModel.MsgID;
            msgRecord.MsgRecipientObjectID = msgRecordModel.MsgRecipientObjectID;
            msgRecord.MsgSenderName        = msgRecordModel.MsgSenderName;
            msgRecord.MsgSenderObjectID    = msgRecordModel.MsgSenderObjectID;
            msgRecord.MsgType  = msgRecordModel.MsgType;
            msgRecord.SendTime = msgRecordModel.SendTime;
            GetUsingMsgRecordBuffer.Add(msgRecord);

            return(msgRecord);
        }
コード例 #18
0
        private string HandleMCSVerfiyMDSMSG(string data, MCSListenerToken token)
        {
            string tempStr = data.Remove(0, CommonFlag.F_MCSVerfiyMDSMSG.Length);

            MsgRecord tempMsgRecord = CommonVariables.serializer.Deserialize <MsgRecord>(tempStr);

            if (tempMsgRecord != null)
            {
                if (!string.IsNullOrEmpty(tempMsgRecord.MsgID))
                {
                    CommonVariables.MessageContorl.AddMsgIntoOutBuffer(tempMsgRecord);
                    return(CommonFlag.F_MDSReciveMCSFBMSG + tempMsgRecord.MsgID);
                }
            }
            return(string.Empty);
        }
コード例 #19
0
            public static MsgRecord Allocate(string msgName, Action <object> msgReceive)
            {
                MsgRecord msg = null;

                if (msgRecordPool.Count > 0)
                {
                    msg = msgRecordPool.Pop();
                }
                else
                {
                    msg = new MsgRecord();
                }
                msg.MsgName      = msgName;
                msg.onMsgReceive = msgReceive;
                return(msg);
            }
コード例 #20
0
ファイル: MsgDisPatcher.cs プロジェクト: EpicProj/RPG
            public static MsgRecord Allocate(string msgName, Action <object> onMsgReceived)
            {
                MsgRecord retRecord = null;

                if (m_MsgRecordPool.Count > 0)
                {
                    retRecord = m_MsgRecordPool.Pop();
                }
                else
                {
                    retRecord = new MsgRecord();
                }
                retRecord.Name          = msgName;
                retRecord.OnMsgReceived = onMsgReceived;

                return(retRecord);
            }
コード例 #21
0
            public static MsgRecord Allocate(string _msgName, Action <object> _handle)
            {
                MsgRecord _record = null;

                if (mPool.Count > 0)
                {
                    _record = mPool.Pop();
                }
                else
                {
                    _record = new MsgRecord();
                }

                _record.msgName = _msgName;
                _record.handle  = _handle;
                return(_record);
            }
コード例 #22
0
        public void AddMsg(MsgRecord msgRecord)
        {
            int i = 0;

            while (i < CommonVariables.MsgContainerCount)
            {
                if (!_InMsgContainers[i].IsFull && !_InMsgContainers[i].Islocked)
                {
                    _InMsgContainers[i].AddMsgRecord(msgRecord);
                }
                i++;
                if (i == CommonVariables.MsgContainerCount)
                {
                    Thread.Sleep(100);
                    i = 0;
                }
            }
        }
コード例 #23
0
        private string HandleMDSVerifyMCSMSG(string data, MDSListenerUDPToken token)
        {
            string    tempStr   = data.Remove(0, CommonFlag.F_MDSVerifyMCSMSG.Length);
            MsgRecord msgReocod = JsonConvert.DeserializeObject <MsgRecord>(tempStr);

            if (msgReocod != null)
            {
                if (!string.IsNullOrEmpty(msgReocod.MsgRecipientObjectID))
                {
                    CommonVariables.MessageContorl.AddMSgRecordIntoBuffer(msgReocod);

                    MCSServer server = CommonVariables.CommonFunctions.FindMCSServer(CommonVariables.MCSServers,
                                                                                     msgReocod.MsgRecipientObjectID);

                    CommonVariables.MessageContorl.AddMsgIntoSendBuffer(server, msgReocod);
                }
                return(CommonFlag.F_MCSVerfiyFBMDSMSG + msgReocod.MsgID);
            }
            return(string.Empty);
        }
コード例 #24
0
        public void AddMsgIntoOutBuffer(MsgRecord msgRecord)
        {
            if (clientModels.ContainsKey(msgRecord.MsgRecipientObjectID))
            {
                if (clientModels[msgRecord.MsgRecipientObjectID].LatestTime.CompareTo(msgRecord.SendTime) < 0)
                {
                    clientModels[msgRecord.MsgRecipientObjectID].LatestTime = msgRecord.SendTime;
                }
            }

            if (OutMsgRecords.ContainsKey(msgRecord.MsgRecipientObjectID))
            {
                if (!(OutMsgRecords[msgRecord.MsgRecipientObjectID].Where(t => t.MsgID == msgRecord.MsgID).Count() > 0))
                {
                    OutMsgRecords[msgRecord.MsgRecipientObjectID].Add(msgRecord);
                }
            }
            else
            {
                OutMsgRecords.Add(msgRecord.MsgRecipientObjectID, new List <MsgRecord>());
                OutMsgRecords[msgRecord.MsgRecipientObjectID].Add(msgRecord);
            }
        }
コード例 #25
0
        protected void RegisterMsg(string msgName, Action <object> onMsgReceived)
        {
            MessageCenter.Register(msgName, onMsgReceived);

            mMsgRecorder.Add(MsgRecord.Allocate(msgName, onMsgReceived));
        }
コード例 #26
0
 public void Register(string msgName, Action <object> onMsgReceived)
 {
     MsgDispatcher.Register(msgName, onMsgReceived);
     mMsgRecorder.Add(MsgRecord.Allocate(msgName, onMsgReceived));
 }
コード例 #27
0
ファイル: MsgDisPatcher.cs プロジェクト: EpicProj/RPG
 public void RegisterMsg(string msgName, Action <object> onMsgReceives)
 {
     MsgDisPatcher.Regist(msgName, onMsgReceives);
     m_MsgRecord.Add(MsgRecord.Allocate(msgName, onMsgReceives));
 }
コード例 #28
0
        public void SendMsgToMCS(MCSServer mcsServer, MsgRecord msgRecord)
        {
            String strmsg = CommonFlag.F_MCSVerfiyMDSMSG + CommonVariables.serializer.Serialize(msgRecord);

            asyncSocketClient.SendMsg(mcsServer.MCS_IP, mcsServer.MCS_Port, strmsg, msgRecord.MsgID, HandMCSReturnData);
        }
コード例 #29
0
        protected void RegisterMsg(string msgName, Action <object> onMsgReceived)
        {
            MsgDispatcher.Register(msgName, onMsgReceived);

            m_MsgRegisterRecorder.Add(MsgRecord.Allocate(msgName, onMsgReceived));
        }
コード例 #30
0
 protected void RegisterMsg(string msgName, Action <object> onReceived)
 {
     MessageDispatch.RegisterMsg(msgName, onReceived);
     _msgRecorder.Add(MsgRecord.Allocate(msgName, onReceived));
 }