Example #1
0
 public DotNettyClientFactory(IMessageCoderFactory coderFactory, IMicroExecutor executor = null)
 {
     _coderFactory  = coderFactory;
     _microExecutor = executor;
     _logger        = LogManager.Logger <DotNettyClientFactory>();
     _bootstrap     = GetBootstrap();
     _bootstrap.Handler(new ActionChannelInitializer <ISocketChannel>(c =>
     {
         var pipeline = c.Pipeline;
         pipeline.AddLast(new LengthFieldPrepender(4));
         pipeline.AddLast(new LengthFieldBasedFrameDecoder(int.MaxValue, 0, 4, 0, 4));
         pipeline.AddLast(new MicroMessageHandler(_coderFactory.GetDecoder()));
         pipeline.AddLast(new ClientHandler(channel =>
         {
             var k = channel.GetAttribute(OrigEndPointKey).Get();
             _logger.Debug($"删除客户端:{k}");
             _clients.TryRemove(k, out _);
         }, async(context, msg) =>
         {
             var listener = context.Channel.GetAttribute(ListenerKey).Get();
             var sender   = context.Channel.GetAttribute(SenderKey).Get();
             await listener.OnReceived(sender, msg);
         }));
     }));
 }
Example #2
0
 public DotNettyMicroListener(IMessageCoderFactory coderFactory)
 {
     _logger       = LogManager.Logger <DotNettyMicroListener>();
     _coderFactory = coderFactory;
 }