コード例 #1
0
        void TcpServerInital()
        {
            if (appServer != null && appServer.State == SuperSocket.SocketBase.ServerState.Running)
            {
                return;
            }
            var config = new SuperSocket.SocketBase.Config.ServerConfig()
            {
                Name                     = "SuperSocketServer",
                ServerTypeName           = "SuperSocketServer",
                ClearIdleSession         = true, //60秒执行一次清理90秒没数据传送的连接
                ClearIdleSessionInterval = 60,
                IdleSessionTimeOut       = 90,
                MaxRequestLength         = 10000, //最大包长度
                Ip   = "Any",
                Port = port,
                MaxConnectionNumber = 10000,//最大允许的客户端连接数目
            };

            appServer = new MyServer(app_NewSessionConnected, app_SessionClosed);
            //移除请求处理方法的注册,因为它和命令不能同时被支持:
            appServer.NewRequestReceived -= App_NewRequestReceived;
            appServer.NewRequestReceived += App_NewRequestReceived;
            appServer.Setup(config);
            if (!appServer.Start())
            {
                //Message("初始化服务失败");
            }
            //else Message("初始化服务成功");
        }
コード例 #2
0
        //rcn2
        //int portRcn = 49012;

        //rcn3
        //int portRcn = 49013;

        //rcn4
        //int portRcn = 49014;

        //rcn5
        //int portRcn = 49015;

        //rcn6
        //int portRcn = 49016;

        //rcn7
        //int portRcn = 49017;

        //rcn8
        //int portRcn = 49018;

        //rcn9
        //int portRcn = 49019;

        //rcn10
        //int portRcn = 49020;


        public void OpenSocket()
        {
            try
            {
                webSocket = new WebSocketServer();
                var serverConfig = new SuperSocket.SocketBase.Config.ServerConfig();
                serverConfig.MaxConnectionNumber = 100000;

                serverConfig.Listeners = new List <SuperSocket.SocketBase.Config.ListenerConfig>()
                {
                    new SuperSocket.SocketBase.Config.ListenerConfig()
                    {
                        Port = portRcn, Backlog = 1000, Ip = "Any", Security = "None"
                    }
                };

                webSocket.Setup(serverConfig);

                webSocket.SessionClosed      += WebSocket_SessionClosed;;
                webSocket.NewMessageReceived += WebSocket_NewMessageReceived;

                webSocket.Start();
            }
            catch (Exception e)
            {
            }
        }
コード例 #3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            frm = this;

            try
            {
                var server_config = new SuperSocket.SocketBase.Config.ServerConfig()
                {
                    Port = 80,
                    Ip   = "127.0.0.1",
                    MaxConnectionNumber = 100,
                    Mode             = SuperSocket.SocketBase.SocketMode.Tcp,
                    Name             = "SuperWebSocket Sample Server",
                    MaxRequestLength = 1024 * 1024 * 10
                };

                setup_server(ref server, server_config);

                _browser_frm.Show();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
コード例 #4
0
ファイル: MainForm.cs プロジェクト: longtaosu/DotnetCoreDemo
        private void MainForm_Load(object sender, EventArgs e)
        {
            var config = new SuperSocket.SocketBase.Config.ServerConfig()
            {
                Name                     = "SSServer",
                ServerTypeName           = "SServer",
                ClearIdleSession         = true, //60秒执行一次清理90秒没数据传送的连接
                ClearIdleSessionInterval = 60,
                IdleSessionTimeOut       = 90,
                MaxRequestLength         = 2048, //最大包长度
                Ip   = "Any",
                Port = 18888,
                MaxConnectionNumber = 60000,
            };

            app = new MyServer(app_NewSessionConnected, app_SessionClosed);
            LogHelper.SetOnLog(new LogHelper.LogEvent((m) =>
            {
                txtAll.Text = string.Join(" ", m, "\r\n");
                txtAll.Select(txtAll.TextLength, 0);
                txtAll.ScrollToCaret();
            }));
            app.Setup(config);
            if (!app.Start())
            {
                LogHelper.WriteLog(string.Format("Socket {0}:{1}启动失败,请检查权限或端口是否被占用!", config.Ip, config.Port));
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: kiba518/SuperSocketConsole
        static void Main(string[] args)
        {
            var serverConfig = new SuperSocket.SocketBase.Config.ServerConfig();

            serverConfig.Port                = 5180;
            serverConfig.TextEncoding        = "gb2312";
            serverConfig.MaxConnectionNumber = 1000;
            serverConfig.MaxRequestLength    = 102400;
            serverConfig.Mode                = SocketMode.Tcp;
            appServer = new AppServer();
            //配置
            if (!appServer.Setup(serverConfig))
            {
                Console.WriteLine("配置失败!");
                return;
            }
            //启动
            if (!appServer.Start())
            {
                Console.WriteLine("启动失败!");
                return;
            }
            Console.WriteLine("启动成功,按Q退出!");
            appServer.NewSessionConnected += new SessionHandler <AppSession>(appServer_NewSessionConnected);
            appServer.SessionClosed       += appServer_NewSessionClosed;
            appServer.NewRequestReceived  += new RequestHandler <AppSession, StringRequestInfo>(appServer_NewRequestReceived);
            while (Console.ReadKey().KeyChar != 'q')
            {
                continue;
            }
            //停止
            appServer.Stop();
            Console.WriteLine("服务已停止");
            Console.ReadKey();
        }
コード例 #6
0
        /// <summary>
        /// Start server instance.
        /// </summary>
        public void start()
        {
            if (running_state)
            {
                throw new InvalidOperationException("FUElTRIP_Logger.start() is called. However, FUELTRIP_Logger has already been started.");
            }
            running_state = true;

            SuperSocket.SocketBase.Config.ServerConfig appserverConfig = new SuperSocket.SocketBase.Config.ServerConfig();
            appserverConfig.DisableSessionSnapshot  = false;
            appserverConfig.SessionSnapshotInterval = 1;
            appserverConfig.Port = this.WebsocketServerListenPortNo;

            if (!appServer.Setup(appserverConfig))
            {
                logger.Fatal("Failed to setup websocket server.");
            }
            if (!appServer.Start())
            {
                logger.Fatal("Failed to start websocket server.");
                return;
            }

            this.fuelTripCalc.loadTripFuel();

            this.websocketClients.start();

            logger.Info("Websocket server is starting... ListenPort: " + this.WebsocketServerListenPortNo.ToString());
        }
コード例 #7
0
        private void Form1_Load(object sender, EventArgs e)
        {
            frm = this;


            try
            {
                var server_config_ssl = new SuperSocket.SocketBase.Config.ServerConfig()
                {
                    Port = Properties.Settings.Default.port,
                    Ip   = "127.0.0.1",
                    MaxConnectionNumber = 100,
                    Mode             = SuperSocket.SocketBase.SocketMode.Tcp,
                    Name             = "SuperSocket.WebSocket Sample Server",
                    MaxRequestLength = 1024 * 1024 * 10
                };

                setup_server(ref server_ssl, server_config_ssl);

                this.serialPort1.PortName = ConfigurationManager.AppSettings["port_name"];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
コード例 #8
0
ファイル: MainWindow.xaml.cs プロジェクト: tangming579/Zabbix
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            if (appServer != null && appServer.State == SuperSocket.SocketBase.ServerState.Running)
            {
                return;
            }
            var config = new SuperSocket.SocketBase.Config.ServerConfig()
            {
                Name                     = "ZabbixAgent",
                ServerTypeName           = "ZabbixAgent",
                ClearIdleSession         = false, //60秒执行一次清理90秒没数据传送的连接
                ClearIdleSessionInterval = 60,
                IdleSessionTimeOut       = 90,
                MaxRequestLength         = 10000, //最大包长度
                Ip   = "Any",
                Port = port,
                MaxConnectionNumber = 10000,//最大允许的客户端连接数目
            };

            appServer = new ZabbixServer(app_NewSessionConnected, app_SessionClosed);
            appServer.NewRequestReceived -= App_NewRequestReceived;
            appServer.NewRequestReceived += App_NewRequestReceived;
            if (!appServer.Setup(config))
            {
                return;
            }
            appServer.Start();
        }
コード例 #9
0
        public void Start()
        {
            _webSocketServer = new WebSocketServer();
            SuperSocket.SocketBase.Config.RootConfig rootConfig = new SuperSocket.SocketBase.Config.RootConfig();
            var serverConfig = new SuperSocket.SocketBase.Config.ServerConfig();

            serverConfig.Name                = "PokeFeeder";
            serverConfig.ServerTypeName      = "WebSocketService";
            serverConfig.Ip                  = "Any";
            serverConfig.Port                = GlobalSettings.OutgoingServerPort;
            serverConfig.MaxRequestLength    = 4096;
            serverConfig.MaxConnectionNumber = 100 * 1000;
            serverConfig.SendingQueueSize    = 25;
            serverConfig.SendTimeOut         = 5000;
            var socketServerFactory = new SuperSocket.SocketEngine.SocketServerFactory();

            _webSocketServer.Setup(rootConfig, serverConfig, socketServerFactory);
            _webSocketServer.Start();
            _webSocketServer.NewMessageReceived  += new SessionHandler <WebSocketSession, string>(socketServer_NewMessageReceived);
            _webSocketServer.NewSessionConnected += socketServer_NewSessionConnected;
            _webSocketServer.SessionClosed       += socketServer_SessionClosed;

            UpdateTitle();
            var pokemonIds = GlobalSettings.UseFilter
? PokemonParser.ParsePokemons(new List <string>(GlobalSettings.PokekomsToFeedFilter))
: Enum.GetValues(typeof(PokemonId)).Cast <PokemonId>().ToList();

            _serverUploadFilter = ServerUploadFilterFactory.Create(pokemonIds);
        }
コード例 #10
0
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            if (appServer != null && appServer.State == SuperSocket.SocketBase.ServerState.Running)
            {
                return;
            }
            var config = new SuperSocket.SocketBase.Config.ServerConfig()
            {
                Name                     = "SuperSocketServer",
                ServerTypeName           = "SuperSocketServer",
                ClearIdleSession         = false, //60秒执行一次清理90秒没数据传送的连接
                ClearIdleSessionInterval = 60,
                IdleSessionTimeOut       = 90,
                MaxRequestLength         = 10000, //最大包长度
                Ip   = "Any",
                Port = port,
                MaxConnectionNumber = 10000,//最大允许的客户端连接数目
            };

            appServer = new MyServer(app_NewSessionConnected, app_SessionClosed);
            //移除请求处理方法的注册,因为它和命令不能同时被支持:
            appServer.NewRequestReceived -= App_NewRequestReceived;
            appServer.NewRequestReceived += App_NewRequestReceived;
            appServer.Setup(config);
            if (!appServer.Start())
            {
                txbReceive.AppendText("初始化服务失败" + '\n');
            }
        }
コード例 #11
0
        private void Form1_Load(object sender, EventArgs e)
        {
            frm = this;

            try
            {
                var server_config_ssl = new SuperSocket.SocketBase.Config.ServerConfig()
                {
                    Port = 443,
                    Ip   = "127.0.0.1",
                    MaxConnectionNumber = 100,
                    Mode             = SuperSocket.SocketBase.SocketMode.Tcp,
                    Name             = "SuperWebSocket Sample Server",
                    MaxRequestLength = 1024 * 1024 * 10,
                    Security         = "tls",
                    Certificate      = new SuperSocket.SocketBase.Config.CertificateConfig
                    {
                        FilePath = ConfigurationManager.AppSettings["cert_file_path"],
                        Password = ConfigurationManager.AppSettings["cert_password"]
                    }
                };

                setup_server(ref server_ssl, server_config_ssl);

                valid_cert();
            }
            catch (Exception ex)
            {
                reflesh_cert();

                MessageBox.Show("証明書を更新しました。\nアプリケーションを再起動します。");

                Application.Restart();
            }
        }
コード例 #12
0
        /// <summary>
        /// Start server instance.
        /// </summary>
        public void start()
        {
            running_state = true;

            SuperSocket.SocketBase.Config.ServerConfig appserver_config = new SuperSocket.SocketBase.Config.ServerConfig();
            appserver_config.DisableSessionSnapshot  = false;
            appserver_config.SessionSnapshotInterval = 1;
            appserver_config.Port = this.WebsocketServer_ListenPortNo;

            //Start Websocket server
            if (!_appServer.Setup(appserver_config)) //Setup with listening port
            {
                //Console.WriteLine("Failed to setup!");
                logger.Fatal("Failed to setup websocket server.");
            }
            if (!_appServer.Start())
            {
                //Console.WriteLine("Failed to start!");
                logger.Fatal("Failed to start websocket server.");
                return;
            }

            _nenpi_trip_calc.load_trip_gas();
            _deficom_ws_client.Open();
            _ssmcom_ws_client.Open();

            //Console.WriteLine("Websocket server is starting... DefiCOM_WS_URL:" + _deficom_WS_URL + " SSMCOM_WS_URL:" + _ssmcom_WS_URL + " ListenPort: " + this.WebsocketServer_ListenPortNo.ToString());
            logger.Info("Websocket server is starting... DefiCOM_WS_URL:" + _deficom_WS_URL + " SSMCOM_WS_URL:" + _ssmcom_WS_URL + " ListenPort: " + this.WebsocketServer_ListenPortNo.ToString());
        }
コード例 #13
0
ファイル: Program.cs プロジェクト: bizarim/csharp-sandbox
        static void Main(string[] args)
        {
            Console.WriteLine("Press any key to start the WebSocketServer!");

            Console.ReadKey();
            Console.WriteLine();

            var appServer = new WebSocketServer();

            SuperSocket.SocketBase.Config.ServerConfig sc = new SuperSocket.SocketBase.Config.ServerConfig();
            sc.MaxConnectionNumber = 40000;
            sc.Port = 2012;


            //Setup the appServer
            if (!appServer.Setup(sc)) //Setup with listening port
            {
                Console.WriteLine("Failed to setup!");
                Console.ReadKey();
                return;
            }

            appServerLogger = appServer.Logger;

            // 문자열로 오는 메시지에 대한 리시빙 완료 핸들러
            appServer.NewMessageReceived += new SessionHandler <WebSocketSession, string>(appServer_NewMessageReceived);
            appServer.NewDataReceived    += new SessionHandler <WebSocketSession, byte[]>(appServer_NewDataReceived);

            // 새 연결이 왔다.
            appServer.NewSessionConnected += new SessionHandler <WebSocketSession>(appServer_NewSessionConnected);
            // 기존 연결이 끊겼다.
            appServer.SessionClosed += new SessionHandler <WebSocketSession, CloseReason>(appServer_SessionClosed);

            Console.WriteLine();

            //Try to start the appServer
            if (!appServer.Start())
            {
                Console.WriteLine("Failed to start!");
                Console.ReadKey();
                return;
            }

            Console.WriteLine("The server started successfully, press key 'q' to stop it!");

            while (Console.ReadKey().KeyChar != 'q')
            {
                Console.WriteLine();
                continue;
            }

            //Stop the appServer
            appServer.Stop();

            Console.WriteLine();
            Console.WriteLine("The server was stopped!");
            Console.ReadKey();
        }
コード例 #14
0
ファイル: Main.cs プロジェクト: blindsight/Talker
		public static void Main(string[] args)
		{
			// Check if the config file is correctly loaded
			if (System.Configuration.ConfigurationManager.AppSettings.Count == 0) {
				Console.WriteLine("ERROR: config file not loaded");
				return;
			}

			int AddressPort = Convert.ToInt16(System.Configuration.ConfigurationManager.AppSettings["port"]);
			int webSocketPort = Convert.ToInt16(System.Configuration.ConfigurationManager.AppSettings["webSocketPort"]);

			//TODO: error message port must be above 1024
			tcpListener = new TcpListener(IPAddress.Any, AddressPort);
			listenThread = new Thread(new ThreadStart(ListenForClients));
			listenThread.Start();
			System.Reflection.Assembly CurrentServer = System.Reflection.Assembly.GetExecutingAssembly();
			string ProductVersion = System.Diagnostics.FileVersionInfo.GetVersionInfo(CurrentServer.Location).ProductVersion;
			DateTime CurrentDateTime = DateTime.Now;

			Console.WriteLine("------------------------------------------------------------------------------");
			Console.WriteLine("{0} {1} server booting on {2} at {3}", CurrentServer.GetName().Name, ProductVersion, CurrentDateTime.ToLongDateString(), CurrentDateTime.ToLongTimeString());
			Console.WriteLine("------------------------------------------------------------------------------");
			Console.WriteLine("Node Name : {0}", System.Environment.MachineName);

		
			//Console.WriteLine("Running On : {0} {1}", (Is64) ? "x86_64": "x86" ,System.Environment.OSVersion.ToString());
			Console.WriteLine("Started server at " + AddressPort);

			SuperSocket.SocketBase.Config.RootConfig r = new SuperSocket.SocketBase.Config.RootConfig();

			SuperSocket.SocketBase.Config.ServerConfig s = new SuperSocket.SocketBase.Config.ServerConfig();
			s.Name = "SuperWebSocket";
			s.Ip = "Any";
			s.Port = webSocketPort;
			s.Mode = SocketMode.Tcp;

			SuperSocket.SocketEngine.SocketServerFactory f = new SuperSocket.SocketEngine.SocketServerFactory();


			if (ws != null)
			{
				ws.Stop();
				ws = null;
			}

			ws = new WebSocketServer();
			ws.Setup(r, s, f);
			ws.SessionClosed += new SessionHandler<WebSocketSession, CloseReason>(ws_SessionClosed);
			ws.NewSessionConnected += new SessionHandler<WebSocketSession>(ws_NewSessionConnected);
			ws.NewMessageReceived += new SessionHandler<WebSocketSession, string>(ws_NewMessageReceived);
			ws.NewDataReceived += new SessionHandler<WebSocketSession, byte[]>(ws_NewDataReceived);
			ws.Start();

			Console.WriteLine("------------------------------------------------------------------------------");
			Console.WriteLine("Booted with PID {0}", System.Diagnostics.Process.GetCurrentProcess().Id);
			Console.WriteLine("------------------------------------------------------------------------------");
		}
コード例 #15
0
ファイル: Main.cs プロジェクト: blindsight/Talker
        public static void Main(string[] args)
        {
            // Check if the config file is correctly loaded
            if (System.Configuration.ConfigurationManager.AppSettings.Count == 0) {
                Console.WriteLine("ERROR: config file not loaded");
                return;
            }

            int AddressPort = Convert.ToInt16(System.Configuration.ConfigurationManager.AppSettings["port"]);
            int webSocketPort = Convert.ToInt16(System.Configuration.ConfigurationManager.AppSettings["webSocketPort"]);

            //TODO: error message port must be above 1024
            tcpListener = new TcpListener(IPAddress.Any, AddressPort);
            listenThread = new Thread(new ThreadStart(ListenForClients));
            listenThread.Start();
            System.Reflection.Assembly CurrentServer = System.Reflection.Assembly.GetExecutingAssembly();
            string ProductVersion = System.Diagnostics.FileVersionInfo.GetVersionInfo(CurrentServer.Location).ProductVersion;
            DateTime CurrentDateTime = DateTime.Now;

            Console.WriteLine("------------------------------------------------------------------------------");
            Console.WriteLine("{0} {1} server booting on {2} at {3}", CurrentServer.GetName().Name, ProductVersion, CurrentDateTime.ToLongDateString(), CurrentDateTime.ToLongTimeString());
            Console.WriteLine("------------------------------------------------------------------------------");
            Console.WriteLine("Node Name : {0}", System.Environment.MachineName);

            //Console.WriteLine("Running On : {0} {1}", (Is64) ? "x86_64": "x86" ,System.Environment.OSVersion.ToString());
            Console.WriteLine("Started server at " + AddressPort);

            SuperSocket.SocketBase.Config.RootConfig r = new SuperSocket.SocketBase.Config.RootConfig();

            SuperSocket.SocketBase.Config.ServerConfig s = new SuperSocket.SocketBase.Config.ServerConfig();
            s.Name = "SuperWebSocket";
            s.Ip = "Any";
            s.Port = webSocketPort;
            s.Mode = SocketMode.Tcp;

            SuperSocket.SocketEngine.SocketServerFactory f = new SuperSocket.SocketEngine.SocketServerFactory();

            if (ws != null)
            {
                ws.Stop();
                ws = null;
            }

            ws = new WebSocketServer();
            ws.Setup(r, s, f);
            ws.SessionClosed += new SessionHandler<WebSocketSession, CloseReason>(ws_SessionClosed);
            ws.NewSessionConnected += new SessionHandler<WebSocketSession>(ws_NewSessionConnected);
            ws.NewMessageReceived += new SessionHandler<WebSocketSession, string>(ws_NewMessageReceived);
            ws.NewDataReceived += new SessionHandler<WebSocketSession, byte[]>(ws_NewDataReceived);
            ws.Start();

            Console.WriteLine("------------------------------------------------------------------------------");
            Console.WriteLine("Booted with PID {0}", System.Diagnostics.Process.GetCurrentProcess().Id);
            Console.WriteLine("------------------------------------------------------------------------------");
        }
コード例 #16
0
ファイル: Program.cs プロジェクト: kenlimmj/quetzalcoatl
        static void socketServer_Initialize()
        {
            // Initialize the server object
            SuperWebSocket.WebSocketServer socketServer = new WebSocketServer ();

            // Initialize basic server configurations
            SuperSocket.SocketBase.Config.RootConfig socketRootConfig = new SuperSocket.SocketBase.Config.RootConfig ();
            SuperSocket.SocketBase.Config.ServerConfig socketServerConfig = new SuperSocket.SocketBase.Config.ServerConfig ();
            SuperSocket.SocketEngine.SocketServerFactory socketServerFactory = new SuperSocket.SocketEngine.SocketServerFactory ();

            // Set the name, IP address and port number which the server is started on
            socketServerConfig.Name = "Quetzalcoatl Server";
            socketServerConfig.Ip = "127.0.0.1";
            socketServerConfig.Port = 1620;

            // Print boilerplate text when the console is first displayed
            logConsoleBoilerplate ();

            // Create the server using the specifications created above
            // If the server fails to start, write to the console
            if (!socketServer.Setup (socketRootConfig, socketServerConfig, socketServerFactory)) {
                Console.WriteLine ("Failed to initialize server at ws[s]://" + socketServer.Config.Ip + ":" + socketServer.Config.Port);
                Console.ReadKey ();
                return;
            }

            // Start the server
            // If the server fails to start, write to the console
            if (!socketServer.Start ()) {
                Console.WriteLine ("Server was successfully initialized at ws[s]://" + socketServer.Config.Ip + ":" + socketServer.Config.Port +
                " but failed to start. Ensure that no processes are currently running at the same address.");
                Console.ReadKey ();
                return;
            }

            // Notify the user that the server has successfully started and is awaiting connections
            Console.WriteLine ("Server initialized at ws[s]://" + socketServer.Config.Ip + ":" + socketServer.Config.Port + " at " + socketServer.StartedTime);
            Console.WriteLine ("Awaiting client connections...");
            Console.WriteLine ();

            // Bind listeners for server events
            socketServer.NewMessageReceived += new SessionHandler<WebSocketSession, string> (socketServer_NewMessageReceived);
            socketServer.NewSessionConnected += socketServer_NewSessionConnected;
            socketServer.SessionClosed += socketServer_SessionClosed;

            // Nullify all console inputs except for when the user types "exit"
            while (Console.ReadLine () != "exit") {
                continue;
            }

            // Properly shutdown the server by waiting on the buffer and freeing all used ports
            socketServer_Shutdown (socketServer);

            return;
        }
コード例 #17
0
ファイル: Program.cs プロジェクト: cmwong/LearnSuperSocket
        static void Main(string[] args)
        {
            SocketServer.EventServer appServer = new SocketServer.EventServer();

            SuperSocket.SocketBase.Config.ServerConfig serverConfig = new SuperSocket.SocketBase.Config.ServerConfig
            {
                Ip               = "0.0.0.0",
                Port             = 8800,
                MaxRequestLength = 2048,            //1024
                // TextEncoding = "UTF-8"
                MaxConnectionNumber = 100,
                //SendingQueueSize = 20000,         //5
                SyncSend    = true,
                SendTimeOut = 2000
            };

            if (!appServer.Setup(serverConfig))
            {
                Console.WriteLine("Failed to setup");
                return;
            }
            if (!appServer.Start())
            {
                Console.WriteLine("Failed to start");
                return;
            }
            Console.WriteLine("server start successfully, press key 'q' to stop it!");
            //while(Console.ReadKey().KeyChar != 'q')
            //{
            //    Console.WriteLine();
            //    continue;
            //}
            string input = Console.ReadLine();

            while (input != "q")
            {
                switch (input)
                {
                case "1":
                    TestSendAlotToAllClient(appServer);
                    break;

                case "2":
                    TestSend10ToAll(appServer);
                    break;
                }
                input = Console.ReadLine();
            }

            appServer.Stop();
            Console.WriteLine("server stoped");
        }
コード例 #18
0
        public WebsocketServiceMain(IContainer container)
        {
            _container = container;

            UserConfig userConfig = container.Get <UserConfig>();

            _websocketServer = new WebSocketServer();

            _websocketServer.NewMessageReceived += Ws_NewMessageReceived;   //当有信息传入时

            _websocketServer.NewSessionConnected += Ws_NewSessionConnected; //当有用户连入时

            _websocketServer.SessionClosed += Ws_SessionClosed;             //当有用户退出时

            _websocketServer.NewDataReceived += Ws_NewDataReceived;         //当有数据传入时

            // 设置参数
            var serverConfig = new SuperSocket.SocketBase.Config.ServerConfig()
            {
                Ip               = "Any",
                Port             = userConfig.WebsocketPort,
                MaxRequestLength = 1024000,
            };


            if (_websocketServer.Setup(serverConfig)) //绑定端口
            {
                if (_websocketServer.Start())         //启动服务
                {
                    _websocketServer.Logger.Info("启动成功");

                    //打开另一个线程监听数据的变动
                    _waitHandle = new AutoResetEvent(false);
                    _thread     = new Thread(new ThreadStart(UnpakageData))
                    {
                        IsBackground = true,
                    };
                    _thread.Start();

                    Queue = new ConcurrentQueue <ReceivedMessage>();
                }
                else
                {
                    _websocketServer.Logger.Info("启动失败");
                }
            }
            else
            {
                _websocketServer.Logger.Info("初始化失败");
            }
        }
コード例 #19
0
        static void Main(string[] args)
        {
            MyServer appServer = new MyServer();
            var      se        = new SuperSocket.SocketBase.Config.ServerConfig();

            se.TextEncoding = "Unicode"; // System.Text.Encoding.
            se.TextEncoding = "gbk";     // System.Text.Encoding.
            se.Ip           = "127.0.0.1";
            se.Port         = 2020;
            se.Mode         = SocketMode.Tcp;

            System.Threading.Thread thSend = new System.Threading.Thread(SendMsgToClient);
            thSend.Start();
            //Setup the appServer
            if (!appServer.Setup(se)) //Setup with listening port
            {
                Console.WriteLine("Failed to setup!");
                Console.ReadKey();
                return;
            }
            Console.WriteLine();
            //Try to start the appServer
            if (!appServer.Start())
            {
                Console.WriteLine("Failed to start!");
                Console.ReadKey();
                return;
            }


            appServer.NewSessionConnected += appServer_NewSessionConnected;
            appServer.SessionClosed       += appServer_SessionClosed;
            appServer.NewRequestReceived  += new RequestHandler <MySession, SuperSocket.SocketBase.Protocol.BinaryRequestInfo>(appServer_NewRequestReceived);


            //// appServer.NewRequestReceived += appServer_NewRequestReceived;
            //Console.WriteLine("The server started successfully, press key 'q' to stop it!");

            //while (Console.ReadKey().KeyChar != 'q')
            //{
            //    Console.WriteLine();
            //    continue;
            //}

            ////Stop the appServer
            //appServer.Stop();
            //Console.WriteLine("The server was stopped!");
            Console.ReadKey();
        }
コード例 #20
0
        static void Main(string[] args)
        {
            //initialise array that will be handling the image data
            for (int i = 0; i < 100000; i++)
            {
                m_ImageListOne[i]           = "";
                m_ImageListTwo[i]           = "";
                m_ImageListOutputTestOne[i] = "";
                m_ImageListOutputTestTwo[i] = "";
            }
            for (int i = 0; i < 2; i++)
            {
                m_ClientIpAddress[i]          = "";
                m_ClientIpComparisonString[i] = "";
            }
            m_wsServer = new WebSocketServer();

            var m_ServerConfig = new SuperSocket.SocketBase.Config.ServerConfig();

            m_ServerConfig.MaxConnectionNumber = 100;
            var m_List = new List <SuperSocket.SocketBase.Config.ListenerConfig>(10);
            int port   = 3000;

            //Initialise ports, these will be used to handle different sessions
            for (int i = 0; i < 10; i++)
            {
                var listener = new SuperSocket.SocketBase.Config.ListenerConfig();
                listener.Port = port;
                port++;
                listener.Backlog  = 1000;
                listener.Ip       = "Any";
                listener.Security = "None";

                m_List.Add(listener);
            }
            //Setup the server and subscribe the server to the various events
            m_ServerConfig.Listeners = m_List;
            m_wsServer.Setup(m_ServerConfig);
            m_wsServer.NewSessionConnected += WsServer_NewSessionConnected;
            m_wsServer.NewMessageReceived  += WsServer_NewMessageReceived;
            m_wsServer.NewDataReceived     += WsServer_NewDataReceived;
            m_wsServer.SessionClosed       += WsServer_SessionClosed;
            m_wsServer.Start();
            while (true)
            {
            }
            ;
        }
コード例 #21
0
        private void CreateServerWebSocket()
        {
            var rootConfig   = new SuperSocket.SocketBase.Config.RootConfig();
            var serverConfig = new SuperSocket.SocketBase.Config.ServerConfig
            {
                Name = Constants.ServerWebSocketString,
                Ip   = "Any",
                Port = this.WebSocketPort,
                Mode = SocketMode.Tcp
            };

            this.webSocketServer = new WebSocketServer();
            this.webSocketServer.Setup(rootConfig, serverConfig, new SuperSocket.SocketEngine.SocketServerFactory());
            this.webSocketServer.NewSessionConnected += new SessionHandler <WebSocketSession>(ServerWebSocket_NewSessionConnected);
            this.webSocketServer.NewMessageReceived  += new SessionHandler <WebSocketSession, string>(ServerWebSocket_NewMessageReceived);
            this.webSocketServer.NewDataReceived     += new SessionHandler <WebSocketSession, byte[]>(ServerWebSocket_NewDataReceived);
        }
コード例 #22
0
        public void Start()
        {
            // todo config 작업

            var sc = new SuperSocket.SocketBase.Config.ServerConfig
            {
                MaxConnectionNumber = 40000,
                Port = 10230,
                IdleSessionTimeOut       = 60 * 5,
                ClearIdleSession         = true,
                ClearIdleSessionInterval = 10
            };

            if (false == this.webSocketServer.Setup(sc)) // Setup with listening port
            {
                logger.Error("Failed to setup!");
                Console.ReadKey();
                System.Threading.Thread.Sleep(5000);
                return;
            }

            // handler
            this.webSocketServer.NewMessageReceived  += new SessionHandler <WebSocketSession, string>(handler.NewMessageReceived);
            this.webSocketServer.NewDataReceived     += new SessionHandler <WebSocketSession, byte[]>(handler.NewDataReceived);
            this.webSocketServer.NewSessionConnected += new SessionHandler <WebSocketSession>(handler.NewSessionConnected);
            this.webSocketServer.SessionClosed       += new SessionHandler <WebSocketSession, CloseReason>(handler.SessionClosed);

            // Try to start the appServer
            if (false == this.webSocketServer.Start())
            {
                logger.Error("Failed to start!");
                Console.ReadKey();
                return;
            }

            executorMessage.Start();

            logger.Info("AppLobbyServer Started");
            Console.WriteLine("AppLobbyServer Started");

            // 우아하지 않게
            while (true)
            {
                System.Threading.Thread.Sleep(1000);
            }
        }
コード例 #23
0
        private EmbeddedWebServer(HttpRequestHandler handler)
        {
            if (!HttpListener.IsSupported)
            {
                Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class.");
                throw new NotSupportedException("SimpleListenerExample");
            }

            if (handler == null)
            {
                throw new ArgumentNullException("handler");
            }

            this._httpHandler = handler;

            // Setup the web sockets
            _socketServer = new WebSocketServer();
            var serverConfig = new SuperSocket.SocketBase.Config.ServerConfig
            {
                Name = "SuperWebSockets",
                Ip   = "Any",
                Port = handler.WebSocketPort,
                Mode = SocketMode.Tcp
            };
            var rootConfig = new SuperSocket.SocketBase.Config.RootConfig();
            var factory    = new SuperSocket.SocketEngine.SocketServerFactory();

            _socketServer.NewSessionConnected += _socketServer_NewSessionConnected;
            _socketServer.SessionClosed       += _socketServer_SessionClosed;
            _socketServer.NewMessageReceived  += _socketServer_NewMessageReceived;
            _socketServer.NewDataReceived     += _socketServer_NewDataReceived;
            _socketServer.Setup(rootConfig, serverConfig, factory);
            _socketServer.Start();

            // Setup the web server
            _httpListener = new HttpListener();
            _httpListener.Prefixes.Add(handler.WebPrefix);
            _httpListener.Start();
            StartListening();

            string chromeArgs = " --app=" + handler.WebPrefix;

            System.Diagnostics.Process.Start(handler.PathOfChromeExecutable, chromeArgs);
        }
コード例 #24
0
        public bool start()
        {
            //Console.ReadKey();
            var config = new SuperSocket.SocketBase.Config.ServerConfig()
            {
                Name                     = "SSServer",
                ServerTypeName           = "SServer",
                ClearIdleSession         = true, //60秒执行一次清理90秒没数据传送的连接
                ClearIdleSessionInterval = 60,
                IdleSessionTimeOut       = 90,
                MaxRequestLength         = 1024 * 1024, //最大包长度
                Ip   = "Any",
                Port = 65531,
                MaxConnectionNumber = 10000,
                TextEncoding        = "GBK"
            };

            appServer = new ProtocolServer();
            appServer.NewSessionConnected += appServer_NewSessionConnected;
            appServer.NewRequestReceived  += appServer_NewRequestReceived;
            appServer.SessionClosed       += appServer_SessionClosed;

            //Setup the appServer
            if (!appServer.Setup(config)) //Setup with listening port
            {
                Console.WriteLine("Failed to setup!");
                Console.ReadKey();
                return(false);
            }

            Console.WriteLine();

            //Try to start the appServer
            if (!appServer.Start())
            {
                Console.WriteLine("Failed to start!");
                Console.ReadKey();
                return(false);
            }

            return(true);
        }
コード例 #25
0
        private void setup_server(ref WebSocketServer server, SuperSocket.SocketBase.Config.ServerConfig serverConfig)
        {
            var rootConfig = new SuperSocket.SocketBase.Config.RootConfig();

            server = new SuperSocket.WebSocket.WebSocketServer();

            //サーバーオブジェクト作成&初期化
            server.Setup(rootConfig, serverConfig);

            //イベントハンドラの設定
            //接続
            server.NewSessionConnected += HandleServerNewSessionConnected;
            //メッセージ受信
            server.NewMessageReceived += HandleServerNewMessageReceived;
            //切断
            server.SessionClosed += HandleServerSessionClosed;

            //サーバー起動
            server.Start();
        }
コード例 #26
0
        /**
         * @Method constructor that initializates the Secure WebSocket on default port 1443
         */
        public SecureSuperSocketController()
        {
            this.Log = LogManager.GetLogger(Properties.Settings.Default.logName);
            int port = 1443;
            SuperSocket.SocketBase.Config.RootConfig r = new SuperSocket.SocketBase.Config.RootConfig();

            SuperSocket.SocketBase.Config.ServerConfig s = new SuperSocket.SocketBase.Config.ServerConfig();

            //Using 80 or 9999 port is working

            s.Name = "SuperWebSocket";
            s.Ip = "127.0.0.1";
            s.Port = port;
            s.Mode = SocketMode.Tcp;
            s.Security = "tls";

            SuperSocket.SocketBase.Config.CertificateConfig cert = new SuperSocket.SocketBase.Config.CertificateConfig();

            string pathToBaseDir = System.IO.Directory.GetParent(Environment.CurrentDirectory).Parent.FullName;

            cert.FilePath = System.IO.Path.Combine(pathToBaseDir, "galeonssl.pfx");
            System.Diagnostics.Debug.Assert(System.IO.File.Exists(cert.FilePath));
            cert.Password = "******";

            s.Certificate = cert;

            SuperSocket.SocketEngine.SocketServerFactory f = new SuperSocket.SocketEngine.SocketServerFactory();

            base.appServer = new WebSocketServer();
            try
            {
                base.appServer.Setup(r, s, f);
                Log.Debug("Secure WebSocket Started at port " + port);
                base.appServer.NewMessageReceived += new SessionHandler<WebSocketSession, string>(this.appServer_NewMessageReceived);
            }
            catch (Exception ex)
            {
                Log.Error("Error while creating Socket on port " + port, ex);
                this.appServer = null;
            }
        }
コード例 #27
0
        private SuperSocket.SocketBase.Config.ServerConfig buildServerConfig(int port)
        {
            string pathToBaseDir = System.IO.Directory.GetParent(Environment.CurrentDirectory).Parent.FullName;
            var    cert          = new SuperSocket.SocketBase.Config.CertificateConfig()
            {
                FilePath = "localhost.pfx", //System.IO.Path.Combine(pathToBaseDir, "localhost.pfx"),
                Password = "******"
            };
            var config = new SuperSocket.SocketBase.Config.ServerConfig()
            {
                Port = port,
                Ip   = "Any",
                MaxConnectionNumber = 100,
                Mode        = SuperSocket.SocketBase.SocketMode.Tcp,
                Name        = "GazeServer",
                Security    = "tls",
                Certificate = cert
            };

            return(config);
        }
コード例 #28
0
        public void StartListen()
        {
            string ip_address = ConfigurationManager.AppSettings["ServerIP"];
            string port       = ConfigurationManager.AppSettings["ServerPort"];

            serverListener = new MsgPackServer();
            var serverConfig = new SuperSocket.SocketBase.Config.ServerConfig
            {
                Port = int.Parse(port), //set the listening port
                Ip   = ip_address,
                Name = "GameServer",
                MaxConnectionNumber = 200,
                SendBufferSize      = 1024 * 4,
                ReceiveBufferSize   = 1024 * 4,
                SendingQueueSize    = 128,
                SendTimeOut         = 10000
            };

            if (!serverListener.Setup(serverConfig))
            {
                AddDebugMessage("server setup failed!");
            }

            /*
             * AddDebugMessage(serverListener.Config.SendTimeOut.ToString());
             * AddDebugMessage(serverListener.Config.SendBufferSize.ToString());
             * AddDebugMessage(serverListener.Config.SendingQueueSize.ToString());
             * AddDebugMessage(serverListener.Config.SyncSend.ToString());
             * AddDebugMessage(serverListener.Config.MaxConnectionNumber.ToString());
             * AddDebugMessage(serverListener.Config.IdleSessionTimeOut.ToString());
             */
            serverListener.NewSessionConnected += new SessionHandler <MsgPackSession>(Server_NewSessionConnected);
            serverListener.NewRequestReceived  += new RequestHandler <MsgPackSession, BinaryRequestInfo>(Server_NewRequestReceived);
            serverListener.SessionClosed       += new SessionHandler <MsgPackSession, SuperSocket.SocketBase.CloseReason>(Server_SessionClosed);

            if (!serverListener.Start())
            {
                AddDebugMessage("server started failed!");
            }
        }
コード例 #29
0
        /// <summary>
        /// 启动服务器端服务
        /// </summary>
        /// <param name="oServerXml">界面的xml参数</param>
        public void ServerSvrStart(ServerXml oServerXml)
        {
            var config = new SuperSocket.SocketBase.Config.ServerConfig()
            {
                Name                     = "SSServer",
                ServerTypeName           = "SServer",
                ClearIdleSession         = true, //60秒执行一次清理90秒没数据传送的连接
                ClearIdleSessionInterval = 60,
                IdleSessionTimeOut       = 90,
                MaxRequestLength         = 4096, //最大包长度
                Ip   = "Any",
                Port = Convert.ToInt32(oServerXml.Port),
                MaxConnectionNumber = 100000,
            };

            //var app = new MyServer();
            //LogHelper.SetOnLog(new LogHelper.LogEvent((m) =>
            //{
            //    txtAll.Text = string.Join(" ", m, "\r\n");
            //    txtAll.Select(txtAll.TextLength, 0);
            //    txtAll.ScrollToCaret();
            //}));
            mMyServer.Setup(config);
            if (!mMyServer.Start())
            {
                //LogHelper.WriteLog(string.Format("Socket {0}:{1}启动失败,请检查权限或端口是否被占用!", config.Ip, config.Port));
                LogHelp.Info(string.Format("Socket {0}:{1}启动失败,请检查权限或端口是否被占用!", config.Ip, config.Port));
            }


            //启动个线程
            m_MonitorDBThreadID = new Thread(MonitorDBThread);
            //主线程退出,此线程立刻退出
            m_MonitorDBThreadID.IsBackground = true;
            m_MonitorDBThreadID.Start();

            LogHelp.Info("监听数据库线程启动完成!");
        }
コード例 #30
0
ファイル: WebSocket.cs プロジェクト: gayanj/SEP_PROJECT_ACRM
        /// <summary>
        /// Create a Unique Session.
        /// </summary>
        /// <param name="ErrorMessage">Error Information for failiures.</param>
        /// <returns>Returns True if session creation was successful.</returns>
        public bool CreateUniqueSession()
        {
            try
            {
                Console.WriteLine("Starting Socket Server.");
                FileLogger.Instance.LogMessage("Starting Socket Server.");
                SuperSocket.SocketBase.Config.RootConfig r = new SuperSocket.SocketBase.Config.RootConfig();

                SuperSocket.SocketBase.Config.ServerConfig s = new SuperSocket.SocketBase.Config.ServerConfig();
                string rootFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

                s.Name = "SecureSuperWebSocket";
                s.Ip   = "127.0.0.1";
                s.Port = _port;
                s.Mode = SocketMode.Tcp;

                //s.Security = "tls";
                //s.Certificate = new SuperSocket.SocketBase.Config.CertificateConfig
                //{
                //    FilePath = @"localhost_sticky_ad.pfx",
                //    Password = "******"
                //};
                appServer = new WebSocketServer();
                appServer.Setup(r, s);
                appServer.NewSessionConnected += new SessionHandler <WebSocketSession>(AppServerNewSessionConnected);
                appServer.NewMessageReceived  += new SessionHandler <WebSocketSession, string>(AppServerNewMessageReceived);
                appServer.SessionClosed       += new SessionHandler <WebSocketSession, CloseReason>(AppServerSessionClosed);
                appServer.Start();
                Console.WriteLine("Socket Server Started. IP=" + s.Ip + ". Port=" + s.Port);
                FileLogger.Instance.LogMessage("Socket Server Started. IP=" + s.Ip + ". Port=" + s.Port);
                return(true);
            }
            catch (Exception exception)
            {
                FileLogger.Instance.LogException(exception);
                return(false);
            }
        }
コード例 #31
0
        private void InitWebsocketServer()
        {
            Console.WriteLine("WebSocketServer is starting!");
            appServer = new GameWebsocketServer();

            SuperSocket.SocketBase.Config.RootConfig   r = new SuperSocket.SocketBase.Config.RootConfig();
            SuperSocket.SocketBase.Config.ServerConfig s = new SuperSocket.SocketBase.Config.ServerConfig();
            s.Name             = "SuperWebSocket";
            s.ServerTypeName   = "WebSocketService";
            s.Ip               = "Any";
            s.Port             = 2012;
            s.MaxRequestLength = 1024 * 1000 * 1000;
            SuperSocket.SocketEngine.SocketServerFactory f = new SuperSocket.SocketEngine.SocketServerFactory();

            appServer.Setup(r, s, f);

            appServer.NewMessageReceived +=
                new SuperSocket.SocketBase.SessionHandler <GameWebsocketSession, string>(
                    appServer_NewMessageReceived);
            appServer.NewSessionConnected +=
                new SuperSocket.SocketBase.SessionHandler <GameWebsocketSession>(
                    appServer_NewSessionConnected
                    );


            Console.WriteLine();

            //Try to start the appServer
            if (!appServer.Start())
            {
                Console.WriteLine("Failed to start!");
                Console.ReadKey();
                return;
            }

            Console.WriteLine("The server started successfully!");
        }
コード例 #32
0
        public void Listen()
        {
            var config = new SuperSocket.SocketBase.Config.ServerConfig()
            {
                //Name = "SSServer",
                //ServerTypeName = "SServer",
                ClearIdleSession         = true, //120秒执行一次清理90秒没数据传送的连接
                ClearIdleSessionInterval = 120,
                IdleSessionTimeOut       = 90,
                MaxRequestLength         = 8192, //最大包长度
                Ip   = "Any",
                Port = 9004,
                MaxConnectionNumber = 100000,
            };

                                                         //Setup the appServer
                            if (!myServer.Setup(config)) //Setup with listening port
            {
                            {
                    log.Info("云主机 Failed to setup!");
                    return;
                }
            }
                        //Try to start the appServer
                            if (!myServer.Start())
            {
                log.Info("云主机 Failed to start!");
                return;
            }
            myServer.NewSessionConnected += MyServer_NewSessionConnected;

            myServer.NewRequestReceived += MyServer_NewRequestReceived;
            myServer.SessionClosed      += myServer_SessionClosed;
            log.Info($"云主机开启。。");
            Console.WriteLine($"云主机开启 {DateTime.Now.ToString()}");
        }
コード例 #33
0
        /// <summary>
        /// Start server instance.
        /// </summary>
        public void start()
        {
            SuperSocket.SocketBase.Config.ServerConfig appserver_config = new SuperSocket.SocketBase.Config.ServerConfig();
            appserver_config.DisableSessionSnapshot  = false;
            appserver_config.SessionSnapshotInterval = 2;
            appserver_config.Port = this.WebsocketPortNo;

            //Try to start the appServer
            if (!appServer.Setup(appserver_config)) //Setup with listening por
            {
                logger.Fatal("Failed to setup websocket server.");
            }
            if (!appServer.Start())
            {
                logger.Fatal("Failed to start websocket server.");
                return;
            }

            logger.Info("Websocket server is started. WebsocketPort:" + this.WebsocketPortNo.ToString() + " COMPort: " + this.COMPortName + "Keep alive dummy message interval:" + this.KeepAliveInterval.ToString() + "ms");

            com1.CommunicateRealtimeStart();

            this.running_state = true;
        }
コード例 #34
0
        private void CreateServerWebSocket()
        {
            var rootConfig = new SuperSocket.SocketBase.Config.RootConfig();
            var serverConfig = new SuperSocket.SocketBase.Config.ServerConfig
            {
                Name = Constants.ServerWebSocketString,
                Ip = "Any",
                Port = this.WebSocketPort,
                Mode = SocketMode.Tcp
            };

            this.webSocketServer = new WebSocketServer();
            this.webSocketServer.Setup(rootConfig, serverConfig, new SuperSocket.SocketEngine.SocketServerFactory());
            this.webSocketServer.NewSessionConnected += new SessionHandler<WebSocketSession>(ServerWebSocket_NewSessionConnected);
            this.webSocketServer.NewMessageReceived += new SessionHandler<WebSocketSession, string>(ServerWebSocket_NewMessageReceived);
            this.webSocketServer.NewDataReceived += new SessionHandler<WebSocketSession, byte[]>(ServerWebSocket_NewDataReceived);
        }