private void HandleMsg(Conn conn, ProtocolBase protoBase) { string name = protoBase.GetName(); string methodName = "Msg" + name; //连接协议分发 if (conn.player == null || name == "HeatBeat" || name == "Logout") { MethodInfo mm = handleConnMsg.GetType().GetMethod(methodName); if (mm == null) { string str = "[警告]HandleMsg没有处理连接方法 "; Console.WriteLine(str + methodName); return; } Object[] obj = new object[] { conn, protoBase }; Console.WriteLine("[处理链接消息]" + conn.GetAdress() + " :" + name); mm.Invoke(handleConnMsg, obj); } //角色协议分发 else { MethodInfo mm = handlePlayerMsg.GetType().GetMethod(methodName); if (mm == null) { string str = "[警告]HandleMsg没有处理玩家方法 "; Console.WriteLine("str + methodName"); return; } Object[] obj = new object[] { conn.player, protoBase }; Console.WriteLine("[处理玩家消息]" + conn.player.id + " :" + name); mm.Invoke(handlePlayerMsg, obj); } }
// private void HandleMsg(Conn conn, ProtocolBase protocolBase) { string name = protocolBase.GetName(); string methodName = "Msg" + name; // Console.WriteLine("[收到协议] : " + name); //连接协议分发 if (conn._player == null || name == "HeatBeat" || name == "Logout" || name == "Login") { MethodInfo mm = HandleConnMsg.GetType().GetMethod(methodName); if (mm == null) { Console.WriteLine("[warning]HandleConnMsg 没有处理连接方法: " + methodName); return; } Object[] obj = new object[] { conn, protocolBase }; Console.WriteLine("[处理连接消息]" + conn.GetAdress() + ":" + name); mm.Invoke(HandleConnMsg, obj); } //角色协议分发 else { MethodInfo mm = HandlePlayerMsg.GetType().GetMethod(methodName); if (mm == null) { Console.WriteLine("[warning]HandlePlayerMsg 没有处理连接方法: " + methodName); return; } Object[] obj = new object[] { conn._player, protocolBase }; Console.WriteLine("[处理玩家消息]" + conn._player.id + ":" + name); mm.Invoke(HandlePlayerMsg, obj); } // //处理心跳 // if (name == "HeatBeat"){ // Console.WriteLine("[更新心跳时间] : " + conn.GetAdress()); // conn._lastTickTime = Sys.GetTimeStamp(); // } // //回射 // Send(conn,protocolBase); }