示例#1
0
 /// <summary>
 /// 信息处理
 /// </summary>
 /// <param name="server"></param>
 public void InvokeMessage()
 {
     while (true)
     {
         ReciveData data = null;
         try
         {
             if (MCQ.TryDequeue(out data))
             {
                 //登陆保存会话 此处已经分配了SESSIONID
                 if (data.Command == Command.Login && ISessionAdd != null)
                 {
                     ISessionAdd.AddSession(data.UserToken);
                     data.UserToken.LoginFinish();
                     ISessionAdd.OnConnected(data.UserToken);
                 }
                 else if (data.Command == Command.Token)
                 {
                     data.UserToken.LastTokenDateTime = DateTime.Now;
                 }
                 else
                 {
                     //客户端定时发送心跳
                     data.UserToken.Token(data);
                     Process.Invoke(data);
                 }
             }
             else
             {
                 Thread.Sleep(1);
             }
         }
         catch (Exception e)
         {
             if (data != null)
             {
                 data.UserToken.Reset("InvokeMessage:" + e.Message + e.StackTrace);
             }
         }
     }
 }