public void Add(MessageToken item) { lock (this) { mQueue.Enqueue(item); } }
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()); } }
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); } } } }
public void Execute(MessageToken e) { OnExecute((T)e.Message, e.Session, e.UserAgent, e.Server); }
protected virtual void OnExecute(MessageToken token, ISiqiServer server) { //添加处理逻辑 }