protected MessageWrapper(JsonMessage request, string type, string crid) { Debug.Assert(request == null || request.GetType().Name == type); ClientRequestID = crid; Type = type; Data = request; }
/// <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); } }
protected MessageWrapper(JsonMessage request) { if (!(request is Notification)) { ClientRequestID = Guid.NewGuid().ToString("N"); } Type = request.GetType().Name; Data = request; }