Example #1
0
        private static void StartServer()
        {
            AsyncSocketAcceptor acceptor = new AsyncSocketAcceptor();

            DefaultIoFilterChainBuilder filters = acceptor.FilterChain;

            // Inject the SSL filter

            SslFilter sslFilter = new SslFilter(AppDomain.CurrentDomain.BaseDirectory + "\\TempCert.cer");

            filters.AddLast("sslFilter", sslFilter);

            // Inject the TestLine codec filter
            filters.AddLast("text", new ProtocolCodecFilter(new TextLineCodecFactory()));

            acceptor.MessageReceived += (s, e) =>
            {
                String line = (String)e.Message;

                if (line.StartsWith("hello"))
                {
                    Debug.WriteLine("Server got: 'hello', waiting for 'send'");
                    Thread.Sleep(1500);
                }
                else if (line.StartsWith("send"))
                {
                    Debug.WriteLine("Server got: 'send', sending 'data'");
                    e.Session.Write("data");
                }
            };

            acceptor.Bind(new IPEndPoint(IPAddress.Any, port));
        }
        public void TestClear()
        {
            DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder(); // TODO: 初始化为适当的值

            builder.AddLast("A", new NoopFilter());
            builder.AddLast("B", new NoopFilter());
            builder.AddLast("C", new NoopFilter());
            builder.AddLast("D", new NoopFilter());
            builder.AddLast("E", new NoopFilter());

            builder.Clear();

            Assert.AreEqual(0, builder.GetAll().Count());
        }
        public void TestClear()
        {
            DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder(); // TODO: 初始化为适当的值

            builder.AddLast("A", new NoopFilter());
            builder.AddLast("B", new NoopFilter());
            builder.AddLast("C", new NoopFilter());
            builder.AddLast("D", new NoopFilter());
            builder.AddLast("E", new NoopFilter());

            builder.Clear();

            Assert.AreEqual(0, builder.GetAll().Count());
        }
        public void TestGet()
        {
            DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder(); // TODO: 初始化为适当的值

            IoFilter filterA = new NoopFilter();
            IoFilter filterB = new NoopFilter();
            IoFilter filterC = new NoopFilter();
            IoFilter filterD = new NoopFilter();

            builder.AddFirst("A", filterA);
            builder.AddLast("B", filterB);
            builder.AddBefore("B", "C", filterC);
            builder.AddAfter("A", "D", filterD);

            Assert.AreSame(filterA, builder.Get("A"));
            Assert.AreSame(filterB, builder.Get("B"));
            Assert.AreSame(filterC, builder.Get("C"));
            Assert.AreSame(filterD, builder.Get("D"));
        }
        public void TestGet()
        {
            DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder(); // TODO: 初始化为适当的值

            IoFilter filterA = new NoopFilter();
            IoFilter filterB = new NoopFilter();
            IoFilter filterC = new NoopFilter();
            IoFilter filterD = new NoopFilter();

            builder.AddFirst("A", filterA);
            builder.AddLast("B", filterB);
            builder.AddBefore("B", "C", filterC);
            builder.AddAfter("A", "D", filterD);

            Assert.AreSame(filterA, builder.Get("A"));
            Assert.AreSame(filterB, builder.Get("B"));
            Assert.AreSame(filterC, builder.Get("C"));
            Assert.AreSame(filterD, builder.Get("D"));
        }
        public void TestAdd()
        {
            DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder();
            builder.AddFirst("A", new NoopFilter());
            builder.AddLast("B", new NoopFilter());
            builder.AddFirst("C", new NoopFilter());
            builder.AddLast("D", new NoopFilter());
            builder.AddBefore("B", "E", new NoopFilter());
            builder.AddBefore("C", "F", new NoopFilter());
            builder.AddAfter("B", "G", new NoopFilter());
            builder.AddAfter("D", "H", new NoopFilter());

            String actual = String.Empty;
            foreach (IEntry<IoFilter, INextFilter> entry in builder.GetAll())
            {
                actual += entry.Name;
            }

            Assert.AreEqual("FCAEBGDH", actual);
        }
        public void TestAdd()
        {
            DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder();

            builder.AddFirst("A", new NoopFilter());
            builder.AddLast("B", new NoopFilter());
            builder.AddFirst("C", new NoopFilter());
            builder.AddLast("D", new NoopFilter());
            builder.AddBefore("B", "E", new NoopFilter());
            builder.AddBefore("C", "F", new NoopFilter());
            builder.AddAfter("B", "G", new NoopFilter());
            builder.AddAfter("D", "H", new NoopFilter());

            String actual = String.Empty;

            foreach (IEntry <IoFilter, INextFilter> entry in builder.GetAll())
            {
                actual += entry.Name;
            }

            Assert.AreEqual("FCAEBGDH", actual);
        }
 public RangeIoFilterChainBuilder(DefaultIoFilterChainBuilder builder)
 {
     this.builder = builder;
 }