Ejemplo n.º 1
0
 protected MessageWrapper(JsonMessage request, string type, string crid)
 {
     Debug.Assert(request == null || request.GetType().Name == type);
     ClientRequestID = crid;
     Type            = type;
     Data            = request;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 转发消息到特定的登陆session中
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="handle"></param>
        /// <param name="session"></param>
        private void ForwardToLoginSession(JsonMessage msg, uint handle, uint session)
        {
            string account = null;

            try
            {
                account = (string)msg.GetType().InvokeMember(
                    "m_Account",
                    BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetField,
                    null, msg, null);
            }
            catch (Exception e)
            {
                LogSys.Log(LOG_TYPE.ERROR, "JsonMessage which are send to login session are suppose to have a filed name m_Account\n" + e.ToString());
                return;
            }

            var login_session = login_sessions_.Find(s => s.Account == account);

            if (null == login_session)
            {
                // TODO: return a meaningful message to client
                LogSys.Log(LOG_TYPE.ERROR, "Login session for account {0} is not found", account);
            }
            else
            {
                login_session.OnMessage(msg);
            }
        }
Ejemplo n.º 3
0
 protected MessageWrapper(JsonMessage request)
 {
     if (!(request is Notification))
     {
         ClientRequestID = Guid.NewGuid().ToString("N");
     }
     Type = request.GetType().Name;
     Data = request;
 }