示例#1
0
 void addtopicsoc(RegData wmqd)
 {
     if (!WMQTOPICList.ContainsKey(wmqd.to))
     {
         WMQTOPIC wtpic = new WMQTOPIC();
         wtpic.topic = wmqd.to;
         wtpic.ALLsoc.AddLast(wmqd.soc);
         WMQTOPICList.Add(wmqd.to, wtpic);
     }
     else
     {
         WMQTOPIC wtpic = WMQTOPICList[wmqd.to];
         wtpic.topic = wmqd.to;
         wtpic.ALLsoc.AddLast(wmqd.soc);
         //WMQTOPICList.Add(wmqd.to, wtpic);
     }
 }
示例#2
0
        public bool EXEC(byte command, string data, System.Net.Sockets.Socket soc)
        {
            try
            {
                WMQData wmqd = new WMQData();
                switch (command)
                {
                case 0:
                    RegData rd = Newtonsoft.Json.JsonConvert.DeserializeObject <RegData>(data);
                    if (rd.type == "topic")
                    {
                        rd.soc = soc;
                        addtopicsoc(rd);
                    }
                    else
                    {
                        WMQueuesoc wq = new WMQueuesoc();
                        wq.token = rd.to; wq.soc = soc;
                        WMQueuesoclink.AddLast(wq);
                    }
                    break;

                case 1:
                    wmqd       = Newtonsoft.Json.JsonConvert.DeserializeObject <WMQData>(data);
                    wmqd.ctime = DateTime.Now;
                    WMQDatalink.AddLast(wmqd);
                    break;

                case 2:
                    wmqd       = Newtonsoft.Json.JsonConvert.DeserializeObject <WMQData>(data);
                    wmqd.ctime = DateTime.Now;
                    addtopic(wmqd);
                    break;
                }
            }
            catch { return(false); }
            return(true);
        }