/// <summary> /// 启动服务 /// </summary> /// <param name="hostControl"></param> /// <returns></returns> public bool Start(HostControl hostControl) { CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-US"); var httpMiddleware = Listener.WsListener.Use <HttpMiddleware>(); Listener.WsListener.Use <JsonWebSocketMiddleware>(); httpMiddleware.MIMECollection.Add(".woff", ".woff"); httpMiddleware.MIMECollection.Add(".woff2", ".woff2"); httpMiddleware.MIMECollection.Add(".ttf", ".ttf"); var ower = TcpSnapshot.Snapshot().FirstOrDefault(item => item.Port == this.Port); if (ower != null) { ower.Kill(); } Listener.WsListener.Start(this.Port); new TimerRun(ConfigurationManager.AppSettings["AutoTime"]); //#region 代理服务 //// 请求前 //FiddlerApplication.BeforeRequest += (session) => //{ // //Console.WriteLine($"{session.clientIP}-> {session.fullUrl}"); // session.bBufferResponse = true; // // 首页重定向 // var uri = new Uri(session.fullUrl); // if (uri.Port == ProxyPort || uri.Port == Port) // { // session.host = $"{uri.Host}:{ Port }"; // AllSessions.Add(session); // } // //Console.WriteLine(session.url); //}; //// 收到服务端的回复 //FiddlerApplication.BeforeResponse += (session) => //{ // try // { // FiddlerProcessor.OnResponse(session); // } // catch (Exception ex) // { // Console.WriteLine(ex.Message); // } //}; //// 配置代理服务器 //Cert.SetRootCertificate(); //CONFIG.IgnoreServerCertErrors = true; //FiddlerApplication.Prefs.SetBoolPref("fiddler.network.streaming.abortifclientaborts", true); //FiddlerApplication.Startup(ProxyPort, FiddlerCoreStartupFlags.AllowRemoteClients | FiddlerCoreStartupFlags.DecryptSSL); //#endregion return(true); }
public void OnConnectTest() { var ower = TcpSnapshot.Snapshot().Where(item => item.Port == 6611).FirstOrDefault(); if (ower != null) { ower.Kill(); } MyTcpServerBase target = new MyTcpServerBase(); // TODO: 初始化为适当的值 target.StartListen(6611); var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect(new System.Net.IPEndPoint(IPAddress.Loopback, 6611)); Thread.Sleep(50); Assert.IsTrue(target.ConnectTimes == 1); Assert.IsTrue(target.AllSessions.Count() == 1); Assert.IsTrue(target.ExtraState.FreeSessionCount == 0); var socket2 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket2.Connect(new System.Net.IPEndPoint(IPAddress.Loopback, 6611)); Thread.Sleep(50); Assert.IsTrue(target.ConnectTimes == 2); Assert.IsTrue(target.AllSessions.Count() == 2); Assert.IsTrue(target.ExtraState.FreeSessionCount == 0); socket.Dispose(); Thread.Sleep(50); Assert.IsTrue(target.DisConnectTimes == 1); Assert.IsTrue(target.AllSessions.Count() == 1); Assert.IsTrue(target.ExtraState.FreeSessionCount == 1); socket2.Dispose(); Thread.Sleep(50); Assert.IsTrue(target.DisConnectTimes == 2); Assert.IsTrue(target.AllSessions.Count() == 0); Assert.IsTrue(target.ExtraState.FreeSessionCount == 2); target.Dispose(); }
public bool Start(HostControl hostControl) { var port = int.Parse(ConfigurationManager.AppSettings["Port"]); var ower = TcpSnapshot.Snapshot().FirstOrDefault(item => item.Port == port); if (ower != null) { Console.WriteLine("{0} 端口{1}被进程{2}占用 ...", DateTime.Now, port, ower.OwerPid); ower.Kill(); } listener.Use <HttpMiddleware>(); listener.Use <JsonWebSocketMiddleware>().GlobalFilters.Add(new Filter()); listener.KeepAlivePeriod = TimeSpan.FromSeconds(30); listener.Start(port); Console.WriteLine("{0} 监听端口{1}成功 ...", DateTime.Now, port); return(true); }
/// <summary> /// 启动服务 /// </summary> /// <param name="hostControl"></param> /// <returns></returns> public bool Start(HostControl hostControl) { var port = int.Parse(ConfigurationManager.AppSettings["Port"]); var ower = TcpSnapshot.Snapshot().FirstOrDefault(item => item.Port == port); if (ower != null) { ower.Kill(); } listener.Use <FlexPolicyMiddleware>(); listener.Use <JsonWebSocketMiddleware>().GlobalFilters.Add(new WebSockeGlobalFilter()); listener.Use <HttpMiddleware>(); listener.Use <FastMiddleware>(); listener.UsePlug <WebSocketPlug>(); listener.Start(port); return(true); }