Ejemplo n.º 1
0
        public override void ReceiveMessage(UserToken Uto, object message)
        {
            Console.WriteLine("接收到{0}用户的{1}信息", Uto.ReceSAEA.RemoteEndPoint, message);
            NetModle modle  = (NetModle)message;      //消息模块化
            IHander  hander = GetHandler(modle.Type); //得到消息对应的模块号

            if (hander == null)
            {
                Console.WriteLine("hander==null");
                return;
            }
            hander.ReciveMessage(Uto, modle);//消息塞进去
        }
Ejemplo n.º 2
0
    //在这里注册消息返回后分发处理
    public void Init()
    {
        //返回我的解决方案中的所有程序集
        Type[] types = AppDomain.CurrentDomain.GetAssemblies()
                       .SelectMany(a => a.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IHander))))
                       .ToArray();

        //相当于
        //public static IEnumerable<Type> GetType(Type interfaceType)
        //{
        //    foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
        //    {
        //        foreach (var type in assembly.GetTypes())
        //        {
        //            foreach (var t in type.GetInterfaces())
        //            {
        //                if (t == interfaceType)
        //                {
        //                    yield return type;
        //                    break;
        //                }
        //            }
        //        }
        //    }
        //}
        foreach (var item in types)
        {
            IHander obj = (IHander)Activator.CreateInstance(item);
            obj.RegisterMsg(_handers);
        }


        //按Json格式序列化
        //WebWorkData web = new WebWorkData() { ipAddress = ipAddress, urlPaths = mURLs };
        //var json = JsonConvert.SerializeObject(web, Formatting.Indented);
        //FileTool.CreateFile(Application.streamingAssetsPath + "/WebData.json", json);

        var str = FileTool.BytesToStr(FileTool.ReadFile(Application.streamingAssetsPath + "/WebData.json"));

        webWorkData = JsonConvert.DeserializeObject <WebWorkData>(str);
    }
Ejemplo n.º 3
0
 public void AddHandler <T>(IHander <T> handler) where T : Message
 {
     Handlers.Add(handler);
 }
Ejemplo n.º 4
0
 public void AddHandler <T>(IHander <T> handler) where T : Message
 {
     HandlerManager.AddHandler(handler);
 }
Ejemplo n.º 5
0
        public Cb1(Hander d)
        {
            IHander h = d;

            h.Handler += bin;
        }