public override void Setup() { m_Bootstrap = new DefaultBootstrap(); m_Encoding = new UTF8Encoding(); m_WebSocketServer = new WebSocketServer(new BasicSubProtocol("Basic", new List <Assembly> { this.GetType().Assembly })); m_Bootstrap.Initialize(new RootConfig { DisablePerformanceDataCollector = true }, new IAppServer[] { m_WebSocketServer }, new IServerConfig[] { new ServerConfig { Port = 2012, Ip = "Any", MaxConnectionNumber = 100, Mode = SocketMode.Tcp, Name = "SuperWebSocket Server" } }, new ConsoleLogFactory()); }
private bool TestMaxConnectionNumber(int maxConnectionNumber) { var server = new TestServer(); var defaultConfig = DefaultServerConfig; var config = new ServerConfig { Ip = defaultConfig.Ip, LogCommand = defaultConfig.LogCommand, MaxConnectionNumber = maxConnectionNumber, Mode = defaultConfig.Mode, Name = defaultConfig.Name, Port = defaultConfig.Port, Security = defaultConfig.Security, Certificate = defaultConfig.Certificate }; var bootstrap = new DefaultBootstrap(); bootstrap.Initialize(m_RootConfig, new IAppServer[] { server }, new IServerConfig[] { config }); List <Socket> sockets = new List <Socket>(); try { bootstrap.Start(); EndPoint serverAddress = new IPEndPoint(IPAddress.Parse("127.0.0.1"), m_Config.Port); for (int i = 0; i < maxConnectionNumber; i++) { Socket socket = CreateClientSocket(); socket.Connect(serverAddress); Stream socketStream = GetSocketStream(socket); StreamReader reader = new StreamReader(socketStream, m_Encoding, true); reader.ReadLine(); sockets.Add(socket); } try { using (Socket trySocket = CreateClientSocket()) { trySocket.Connect(serverAddress); var innerSocketStream = new NetworkStream(trySocket); innerSocketStream.ReadTimeout = 500; using (StreamReader tryReader = new StreamReader(innerSocketStream, m_Encoding, true)) { string welcome = tryReader.ReadLine(); Console.WriteLine(welcome); return(true); } } } catch (Exception) { return(true); } } catch (Exception e) { Console.WriteLine(e.Message + " " + e.StackTrace); return(false); } finally { bootstrap.Stop(); } }