コード例 #1
0
        public static MessageHandler Create(Type handlerType, NetChannel channel)
        {
            var handler = (MessageHandler)PopoObjectPool.Fetch(handlerType, channel);

            handler.Channel = channel;
            return(handler);
        }
コード例 #2
0
        public static T Create <T>(NetChannel channel) where T : MessageHandler
        {
            var type    = typeof(T);
            var handler = (T)PopoObjectPool.Fetch(typeof(T), channel);

            return(handler);
        }
コード例 #3
0
ファイル: TcpService.cs プロジェクト: zjccwboy/NET.Popo
 private void CreateMessageHandlers(NetChannel channel)
 {
     foreach (var type in handlerTypes)
     {
         MessageHandlerFactory.Create(type, channel);
     }
 }
コード例 #4
0
ファイル: TcpService.cs プロジェクト: zjccwboy/NET.Popo
 private async void OnChannelError(NetChannel channel, SocketError socketError)
 {
     if (channel.ChannelType == ChannelType.Client)
     {
         if (!await channel.ReConnecting())
         {
             channel.Close();
         }
         else
         {
             return;
         }
     }
     else
     {
         channel.DisConnect();
     }
     Channels.TryRemove(channel.ObjectId, out NetChannel valu);
 }
コード例 #5
0
ファイル: MessageHandler.cs プロジェクト: zjccwboy/NET.Popo
 public MessageHandler(NetChannel channel, int handlerId)
 {
     this.Channel          = channel;
     this.Channel.OnClose += () => { this.Close(); };
 }
コード例 #6
0
 public MessageDistribute(NetChannel channel, int handlerId) : base(channel, handlerId)
 {
 }