Пример #1
0
 public void Add(MessageToken item)
 {
     lock (this)
     {
         mQueue.Enqueue(item);
     }
 }
Пример #2
0
        public void Route(MessageToken message)
        {
            Dispatcher dispatch = null;

            if (mDispatcherMap.TryGetValue(message.Message.GetType(), out dispatch))
            {
                dispatch.Add(message);
            }
            else
            {
                "{0} message handler not found!".Log4Error(message.Message.GetType());
            }
        }
Пример #3
0
        public void Run(object state)
        {
            while (true)
            {
                IMessageHandler handler = null;
                try
                {
                    MessageToken job = GetItem();

                    if (job != null)
                    {
                        if (mHandlers.TryGetValue(job.Message.GetType(), out handler))
                        {
                            handler.Execute(job);
                        }
                        else
                        {
                            "{0} message handler not found".Log4Error(job.Message.GetType());
                        }
                    }
                    else
                    {
                        System.Threading.Thread.Sleep(10);
                    }
                }
                catch (Exception e_)
                {
                    if (handler != null)
                    {
                        "{0} invoke error {1}".Log4Error(e_, handler.GetType(), e_.Message);
                    }
                    else
                    {
                        "Dispatcher error {0}".Log4Error(e_, e_.Message);
                    }
                }
            }
        }
Пример #4
0
 public void Execute(MessageToken e)
 {
     OnExecute((T)e.Message, e.Session, e.UserAgent, e.Server);
 }
Пример #5
0
 protected virtual void OnExecute(MessageToken token, ISiqiServer server)
 {
     //添加处理逻辑
 }