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 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; }