コード例 #1
0
        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());
        }
コード例 #2
0
        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();
            }
        }