public void StartServer(IPEndPoint socketInfo, int maxRequests = 0) { if (IsOnline) { _messages.Add(new Tuple <Guid, string>(Guid.Empty, "Cannot Start Server While Online")); UpdateText(); return; } _networkServer = new NetworkServer(socketInfo); _messageServer = new MessageServer(_networkServer); _messageServer.Started += ServerOnServerStarted; _messageServer.Stopped += ServerOnSeverStopped; _messageServer.ClientConnected += ServerOnClientConnected; _messageServer.ClientDisconnected += ServerOnClientDisconnected; _messageServer.ReceivedFrom.Register(NetCode.UserMessage, ServerOnUserMessageReceived); _messageServer.ReceivedFrom.Register(NetCode.RawMessage, ServerOnUserMessageReceived); _messageServer.ReceivedFrom.Register(NetCode.UpdateUsername, ServerOnUpdateUserNameReceived); // _messageServer.SentTo.Register(NetCode.GuidNotification, ServerOnGuidNotifcationSent); // _messageServer.Sent.Register(NetCode.UpdateUsername, ServerOnUpdateUsernameSent); if (maxRequests <= 0) { _messageServer.Start(); } else { _messageServer.Start(maxRequests); } }
private static void Main(string[] args) { Console.Title = "GFFServer"; ConsoleHelper.WriteLine("正在初始化消息服务器...", ConsoleColor.Green); messageServer = new MessageServer(count: 100); messageServer.OnAccepted += Server_OnAccepted; messageServer.OnError += Server_OnError; messageServer.OnDisconnected += Server_OnDisconnected; ConsoleHelper.WriteLine("消息服务器初始化完毕...", ConsoleColor.Green); ConsoleHelper.WriteLine("正在启动消息服务器...", ConsoleColor.Green); messageServer.Start(); ConsoleHelper.WriteLine("消息服务器启动完毕...", ConsoleColor.Green); ConsoleHelper.WriteLine("正在初始化文件服务器...", ConsoleColor.DarkYellow); var filePort = ServerConfig.Instance().FilePort; fileServer = new SAEAMvcApplication(port: filePort); fileServer.SetDefault("File", "Test"); ConsoleHelper.WriteLine("文件服务器初始化完毕...", ConsoleColor.DarkYellow); ConsoleHelper.WriteLine("正在启动文件服务器...", ConsoleColor.DarkYellow); fileServer.Start(); ConsoleHelper.WriteLine("文件服务器初始化完毕,http://127.0.0.1:" + filePort + "/...", ConsoleColor.DarkYellow); ConsoleHelper.WriteLine("点击回车,结束服务"); Console.ReadLine(); }
/// <summary> /// Initialises the TCP Server /// </summary> /// <param name="port">Port listening to</param> /// <param name="timeout">Timeout in seconds</param> protected void InitializeTCPServer(int port, int timeout = 60) { _messageServerError = false; if (!MessageServerActive) { return; } _messageServer = new MessageServer(Utilities.CheckMinMax(port, 0, 65535)); _messageServer.MessageReceived += _messageServer_MessageReceived; _messageServer.ClientConnected += _messageServer_ClientConnected; _messageServer.ClientDisconnected += _messageServer_ClientDisconnected; _messageServer.OnError += _messageServer_OnError; _messageServer.Started += _messageServer_Started; _messageServer.Stopped += _messageServer_Stopped; _messageServer.AllowClientConnect += _messageServer_AllowClientConnect; _messageServer.ClientLogin += _messageServer_ClientLogin; _messageServer.ClientTimeOut = (ushort)Utilities.CheckMinMax(timeout, 5, 180); // 60 second timeout _messageServer.LoginRequird = MessageServerLogin; _messageServer.Start(); if (!Classes.ThreadManager.Exists("Service Message Server Manager")) { MessageServerManagementThread thread = new MessageServerManagementThread(this); Classes.ThreadManager.ThreadStart(thread, "Service Message Server Manager", System.Threading.ThreadPriority.Lowest); } }
public void Go(ServerContext sCtx, ClientContext cCtx) { _sCtx = sCtx; _cCtx = cCtx; var mr = false; var server = new MessageServer(sCtx); sCtx.M.RegisterAsync <HelloRequest>(this, x => { sCtx.M.Send(new HelloResponse(x)); }); cCtx.Messenger.RegisterAsync <HelloResponse>(this, x => { cCtx.Logger.Log(x.Response + " " + x.ClientId); mr = true; }); server.Start(); SendAsClient(server, cCtx.Messenger, new HelloRequest()); do { Thread.Sleep(1); } while (!mr); server.Stop(); }
private static void ServerInit() { ConsoleHelper.WriteLine("SAEA.Message服务器正在启动..."); MessageServer server = new MessageServer(39654, 100, 100000, 30 * 60 * 1000); server.OnAccepted += Server_OnAccepted; server.OnError += Server_OnError; server.OnDisconnected += Server_OnDisconnected; server.Start(); Task.Factory.StartNew(() => { while (true) { ConsoleHelper.Title = "MessageServer ClientCounts: " + server.ClientCounts; Thread.Sleep(1000); } }, TaskCreationOptions.LongRunning); ConsoleHelper.WriteLine("SAEA.Message服务器已就绪!"); }
static void Main(string[] args) { Trace.Listeners.Add(new ConsoleTraceListener()); // 启动服务器 using (MessageServer server = new MessageServer()) { server.Port = 8088; server.Start(); Console.WriteLine("Press enter key to exit..."); Console.ReadLine(); server.Stop(); } }
private static void Main(string[] args) { ConsoleHelper.WriteLine("正在初始化服务器...", ConsoleColor.Green); server = new MessageServer(); server.OnAccepted += Server_OnAccepted; server.OnErrored += Server_OnErrored; server.OnServerReceived += Server_OnReceived; server.OnUnAccepted += Server_OnUnAccepted; ConsoleHelper.WriteLine("服务器初始化完毕...", ConsoleColor.Green); ConsoleHelper.WriteLine("正在启动服务器...", ConsoleColor.Green); server.Start(); ConsoleHelper.WriteLine("服务器启动完毕...", ConsoleColor.Green); ConsoleHelper.WriteLine("点击回车,结束服务"); Console.ReadLine(); }
private static void Main(string[] args) { ConsoleHelper.WriteLine("正在初始化服务器...", ConsoleColor.Green); server = new MessageServer(); server.OnAccepted += Server_OnAccepted; server.OnError += Server_OnError; server.OnDisconnected += Server_OnDisconnected; mvcApplication = new SAEAMvcApplication(port: ServerConfig.Instance().FilePort); ConsoleHelper.WriteLine("服务器初始化完毕...", ConsoleColor.Green); ConsoleHelper.WriteLine("正在启动服务器...", ConsoleColor.Green); server.Start(); mvcApplication.Start(); ConsoleHelper.WriteLine("服务器启动完毕...", ConsoleColor.Green); ConsoleHelper.WriteLine("点击回车,结束服务"); Console.ReadLine(); }
/// <summary> /// </summary> /// <param name="sender"> /// </param> /// <param name="e"> /// </param> protected void Application_Start(object sender, EventArgs e) { var policyServer = new PolicyServer("clientaccesspolicy.xml"); IMessageServer messageServer = new MessageServer( IPAddress.Any, 4530, new JsonMessageSerializer(new List <Type>() { typeof(WeatherMessage), typeof(SubscribeMessage) })); ThreadPool.QueueUserWorkItem((o) => { policyServer.Start(); }); ThreadPool.QueueUserWorkItem((o) => { messageServer.Start(); }); var weatherService = new WeatherService(messageServer); }
public void ConnectToUser(MessageTransfer.EndPoint serverEndPoint) { messageServer = new MessageServer(); messageServer.MessageReceived += MessageServer_MessageReceived; messageServer.Start(); messageClient.Connect(serverEndPoint.ToIPEndPoint()); ReadyRequest readyRequest = new ReadyRequest { EndPoint = messageServer.ListeningEndPoint, OperatorID = ID }; messageClient.SendMessage(readyRequest); }
/// <summary> /// [implementation of IHostedService] Triggered when the application host is ready to start the service. /// StartAsync contains the logic to start the background task. StartAsync is called: /// - BEFORE The app's request processing pipeline is configured (Startup.Configure). /// - BEFORE The server is started and IApplicationLifetime.ApplicationStarted is triggered. /// </summary> /// <param name="cancellationToken">Indicates that the start process has been aborted</param> /// <returns>Task</returns> public Task StartAsync(CancellationToken cancellationToken) { if (_server != null && !_server.IsStarted) { if (_server.Start()) { _logger.LogInformation($"TcpServer STARTED. Now listening on: {_server.Endpoint.Address}:{_server.Endpoint.Port}"); _fileLogger.WriteProgramLog($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} TcpServer STARTED. Now listening on: {_server.Endpoint.Address}:{_server.Endpoint.Port}"); } else { _logger.LogWarning("TcpServer failed to start"); _fileLogger.WriteProgramLog($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} TcpServer failed to start"); } } return(Task.CompletedTask); }
static void Main(string[] args) { var sCtx = new ServerContext("..//..//..//..//..//instance//prime-server.config"); var logger = new ConsoleLogger() { IncludePreamble = true }; sCtx.L = logger; logger.Log(": Operating system: " + Environment.OSVersion.Platform); logger.Log(": Current directory: " + Environment.CurrentDirectory); var server = new MessageServer(sCtx); server.Start(); foreach (var i in server.TypeBinder.TypeCatalogue) { logger.Log(server.TypeBinder.TypeCatalogue.Get(i)); } // Start message listener. var keysManager = new KeyManagerServer(sCtx); Task.Run(() => { keysManager.Run(); }); logger.Log(": Server started"); // Start UI. var uiTask = Task.Run(() => { var process = RunUi(); logger.Log($": Electron UI started ({process.Id})."); process.WaitForExit(); }); logger.Log(": UI started"); logger.Log(": Waiting for all UI processes exit..."); uiTask.Wait(); }
private static void ServerInit() { ConsoleHelper.WriteLine("SAEA.Message服务器正在启动..."); MessageServer server = new MessageServer(100, 100000, 30 * 60 * 1000); server.OnDisconnected += Server_OnDisconnected; server.Start(); Task.Run(() => { while (true) { ConsoleHelper.Title = "MessageServer ClientCounts: " + server.ClientCounts; Thread.Sleep(1000); } }); ConsoleHelper.WriteLine("SAEA.Message服务器已就绪!"); }
/// <summary> /// Initializes the module and prepares it to handle requests. /// </summary> public void Init() { //http://support.microsoft.com/kb/911816 // Do this one time for each AppDomain. if (!_initialized) { lock (_objLock) { if (!_initialized) { _initialized = true; } } } AMFWebContext.Initialize(); if (messageServer == null) { lock (_objLock) { if (messageServer == null) { messageServer = new MessageServer(); try { messageServer.Init(); messageServer.Start(); } catch (Exception) { } } } } }
public void Init(HttpApplication application) { Exception exception; object obj2; if (!_initialized) { lock ((obj2 = _objLock)) { if (!_initialized) { try { new PermissionSet(PermissionState.Unrestricted).Demand(); this.WireAppDomain(); } catch (SecurityException) { } _initialized = true; } } } application.BeginRequest += new EventHandler(this.application_BeginRequest); if (!FluorineConfiguration.Instance.FluorineSettings.Runtime.AsyncHandler) { application.PreRequestHandlerExecute += new EventHandler(this.application_PreRequestHandlerExecute); } else { application.AddOnPreRequestHandlerExecuteAsync(new BeginEventHandler(this.BeginPreRequestHandlerExecute), new EndEventHandler(this.EndPreRequestHandlerExecute)); } application.AuthenticateRequest += new EventHandler(this.application_AuthenticateRequest); application.ReleaseRequestState += new EventHandler(this.application_ReleaseRequestState); application.PreSendRequestHeaders += new EventHandler(this.application_PreSendRequestHeaders); application.EndRequest += new EventHandler(this.application_EndRequest); FluorineWebContext.Initialize(); if (serviceBrowserRenderer == null) { lock ((obj2 = _objLock)) { if (serviceBrowserRenderer == null) { try { LogManager.GetLogger(typeof(FluorineGateway)).Info(__Res.GetString("ServiceBrowser_Aquire")); } catch { } try { Type type = ObjectFactory.Locate("FluorineFx.ServiceBrowser.ServiceBrowserRenderer"); if (type != null) { serviceBrowserRenderer = Activator.CreateInstance(type) as IServiceBrowserRenderer; if (serviceBrowserRenderer != null) { try { LogManager.GetLogger(typeof(FluorineGateway)).Info(__Res.GetString("ServiceBrowser_Aquired")); } catch { } } } } catch (Exception exception2) { exception = exception2; try { LogManager.GetLogger(typeof(FluorineGateway)).Fatal(__Res.GetString("ServiceBrowser_AquireFail"), exception); } catch { } } } } } if (messageServer == null) { lock ((obj2 = _objLock)) { if (messageServer == null) { try { ILog logger = LogManager.GetLogger(typeof(FluorineGateway)); logger.Info("************************************"); logger.Info(__Res.GetString("Fluorine_Start")); logger.Info(__Res.GetString("Fluorine_Version", new object[] { Assembly.GetExecutingAssembly().GetName().Version })); logger.Info("************************************"); logger.Info(__Res.GetString("MessageServer_Create")); } catch { } messageServer = new MessageServer(); try { string configPath = Path.Combine(Path.Combine(HttpRuntime.AppDomainAppPath, "WEB-INF"), "flex"); messageServer.Init(configPath, serviceBrowserRenderer != null); messageServer.Start(); try { LogManager.GetLogger(typeof(FluorineGateway)).Info(__Res.GetString("MessageServer_Started")); } catch { } HttpContext.Current.Application["__@fluorinemessageserver"] = messageServer; } catch (Exception exception3) { exception = exception3; try { LogManager.GetLogger(typeof(FluorineGateway)).Fatal(__Res.GetString("MessageServer_StartError"), exception); } catch { } } } } } }
public void Start() { messageServer.MessageReceived += ServerFunction; messageServer.Start(); }
/// <summary> /// Initializes the module and prepares it to handle requests. /// </summary> /// <param name="application">An HttpApplication that provides access to the methods, properties, and events common to all application objects within an ASP.NET application.</param> public void Init(HttpApplication application) { //http://support.microsoft.com/kb/911816 // Do this one time for each AppDomain. if (!_initialized) { lock (_objLock) { if (!_initialized) { if (Log.IsInfoEnabled) { Log.Info("************************************"); Log.Info(__Res.GetString(__Res.Fluorine_Start)); Log.Info(__Res.GetString(__Res.Fluorine_Version, Assembly.GetExecutingAssembly().GetName().Version)); Log.Info(string.Format("Common language runtime version {0}", Environment.Version)); Log.Info("************************************"); Log.Info(__Res.GetString(__Res.MessageServer_Create)); } try { // See if we're running in full trust new PermissionSet(PermissionState.Unrestricted).Demand(); //LinkDemands and InheritenceDemands Occur at JIT Time //http://blogs.msdn.com/shawnfa/archive/2006/01/11/511716.aspx WireAppDomain(); RegisterObject(); } catch (MethodAccessException) {} catch (SecurityException) {} FluorineWebContext.Initialize(); Log.Info(__Res.GetString(__Res.ServiceBrowser_Aquire)); try { Type type = ObjectFactory.Locate("FluorineFx.ServiceBrowser.ServiceBrowserRenderer"); if (type != null) { _serviceBrowserRenderer = Activator.CreateInstance(type) as IServiceBrowserRenderer; if (_serviceBrowserRenderer != null) { Log.Info(__Res.GetString(__Res.ServiceBrowser_Aquired)); } } } catch (Exception ex) { Log.Fatal(__Res.GetString(__Res.ServiceBrowser_AquireFail), ex); } try { _messageServer = new MessageServer(); string[] possibleConfigFolderPaths = new string[PossibleConfigFolderNames.Length]; for (int i = 0; i < PossibleConfigFolderNames.Length; i++) { string configPath = Path.Combine(HttpRuntime.AppDomainAppPath, PossibleConfigFolderNames[i]); possibleConfigFolderPaths[i] = configPath; } _messageServer.Init(possibleConfigFolderPaths, _serviceBrowserRenderer != null); _messageServer.Start(); Log.Info(__Res.GetString(__Res.MessageServer_Started)); HttpContext.Current.Application[FluorineMessageServerKey] = _messageServer; } catch (Exception ex) { Log.Fatal(__Res.GetString(__Res.MessageServer_StartError), ex); } _handlers.Add(new AmfRequestHandler(this)); _handlers.Add(new StreamingAmfRequestHandler(this)); _handlers.Add(new RtmptRequestHandler(this)); _handlers.Add(new JsonRpcRequestHandler(this)); _initialized = true; } } } //Wire up the HttpApplication events. // //BeginRequest //AuthenticateRequest //AuthorizeRequest //ResolveRequestCache //A handler (a page corresponding to the request URL) is created at this point. //AcquireRequestState ** Session State ** //PreRequestHandlerExecute //[The handler is executed.] //PostRequestHandlerExecute //ReleaseRequestState //Response filters, if any, filter the output. //UpdateRequestCache //EndRequest application.BeginRequest += ApplicationBeginRequest; if (!FluorineConfiguration.Instance.FluorineSettings.Runtime.AsyncHandler) { application.PreRequestHandlerExecute += ApplicationPreRequestHandlerExecute; } else { application.AddOnPreRequestHandlerExecuteAsync(BeginPreRequestHandlerExecute, EndPreRequestHandlerExecute); } application.AuthenticateRequest += ApplicationAuthenticateRequest; //This implementation hooks the ReleaseRequestState and PreSendRequestHeaders events to //figure out as late as possible if we should install the filter. //The Post Release Request State is the event most fitted for the task of adding a filter //Everything else is too soon or too late. At this point in the execution phase the entire //response content is created and the page has fully executed but still has a few modules to go through //from an ASP.NET perspective. We filter the content here and all of the javascript renders correctly. //application.PostReleaseRequestState += new EventHandler(this.CompressContent); application.ReleaseRequestState += ApplicationReleaseRequestState; application.PreSendRequestHeaders += ApplicationPreSendRequestHeaders; application.EndRequest += ApplicationEndRequest; }
static void Main(string[] args) { ConsoleHelper.WriteLine("Message Test"); ConsoleHelper.WriteLine("服务器正在启动..."); MessageServer server = new MessageServer(); server.Start(); Task.Run(() => { while (true) { ConsoleHelper.Title = "MessageServer ClientCounts: " + server.ClientCounts; Thread.Sleep(1000); } }); ConsoleHelper.WriteLine("服务器就绪"); //=============================================================== MessageClient client = new MessageClient(); client.OnChannelMessage += Client_OnChannelMessage; client.OnPrivateMessage += Client_OnPrivateMessage; ConsoleHelper.WriteLine("客户正在连接..."); string channelName = "频道测试一"; client.ConnectAsync((state) => { ConsoleHelper.WriteLine("客户就绪"); if (state == System.Net.Sockets.SocketError.Success) { client.Login(); ConsoleHelper.WriteLine("客户登录成功"); client.Subscribe(channelName); ConsoleHelper.WriteLine("客户订阅成功"); Task.Run(() => { while (true) { client.SendChannelMsg(channelName, "hello!"); Thread.Sleep(60 * 1000); } }); ConsoleHelper.WriteLine("客户发送频道消息成功"); } }); //=============================================================== ConsoleHelper.ReadLine(); Console.WriteLine("单机连接测试..."); List <MessageClient> slist = new List <MessageClient>(); Task.Run(() => { for (int i = 0; i < 50000; i++) { var c = new MessageClient(); c.ConnectAsync((state) => { slist.Add(c); }); Thread.Sleep(1); if (i > 1000) { Thread.Sleep(10); } if (i > 5000) { Thread.Sleep(100); } if (i > 10000) { Thread.Sleep(1000); } } Console.WriteLine("单机5W连接就绪..."); }); //=============================================================== ConsoleHelper.ReadLine(); Console.WriteLine("开始订阅测试..."); List <MessageClient> list = new List <MessageClient>(); for (int i = 0; i < 100; i++) { var c = new MessageClient(); if (i < 10) { c.OnChannelMessage += Client_OnChannelMessage2; } c.ConnectAsync((state) => { c.Login(); c.Subscribe(channelName); list.Add(c); }); Thread.Sleep(10); } //=============================================================== ConsoleHelper.ReadLine(); Console.WriteLine("私信测试"); var cc1 = new MessageClient(); cc1.OnPrivateMessage += Client_OnPrivateMessage; var cc2 = new MessageClient(); cc2.OnPrivateMessage += Client_OnPrivateMessage; cc1.ConnectAsync((state) => { cc1.Login(); Task.Run(() => { while (true) { if (cc2.Connected) { cc1.SendPrivateMsg(cc2.UserToken.ID, "你好呀,cc2!"); } Thread.Sleep(1000); } }); cc1.Subscribe(channelName); list.Add(cc1); }); cc2.ConnectAsync((state) => { cc2.Login(); Task.Run(() => { while (true) { if (cc1.Connected) { cc2.SendPrivateMsg(cc1.UserToken.ID, "你好呀,cc1!"); } Thread.Sleep(1000); } }); cc2.Subscribe(channelName); list.Add(cc2); }); //=============================================================== ConsoleHelper.ReadLine(); Console.WriteLine("群组测试"); cc1.OnGroupMessage += Client_OnGroupMessage; cc2.OnGroupMessage += Client_OnGroupMessage; var groupName = "萌一号蠢"; cc1.SendCreateGroup(groupName); cc2.SendAddMember(groupName); Task.Run(() => { while (true) { cc1.SendGroupMessage(groupName, "群主广播了!"); cc2.SendGroupMessage(groupName, "群主万岁!"); Thread.Sleep(100); } }); //=============================================================== ConsoleHelper.ReadLine(); cc2.SendRemoveMember(groupName); cc1.SendRemoveGroup(groupName); client.Unsubscribe(channelName); Console.WriteLine("测试完成"); ConsoleHelper.ReadLine(); }
public void Start() { net_server.Start(); Thread.Sleep(10); }
private static void Main(string[] args) { Thread serverThread = null; Console.WriteLine("是否启动服务器?Y/N"); var result = Console.ReadLine().ToUpper(); if (result != "N") { serverThread = new Thread(() => { ConsoleHelper.WriteLine("正在初始化服务器...", ConsoleColor.Green); server = new MessageServer(); server.OnAccepted += Server_OnAccepted; server.OnErrored += Server_OnErrored; //server.OnReceived += Server_OnReceived; server.OnUnAccepted += Server_OnUnAccepted; ConsoleHelper.WriteLine("服务器初始化完毕...", ConsoleColor.Green); ConsoleHelper.WriteLine("正在启动服务器...", ConsoleColor.Green); server.Start(); ConsoleHelper.WriteLine("正在启动wsserver..."); WSServer wsserver = new WSServer(); var wsurl = "ws://172.31.56.106:" + ServerConfig.Instance().WSPort; wsserver.Start(wsurl); ConsoleHelper.WriteLine("wsserver正在运行..."); ConsoleHelper.WriteLine("服务器启动完毕...", ConsoleColor.Green); }); serverThread.Start(); Console.Title = "GFFServer"; Console.ReadLine(); //return; } Console.Title = "GFFClient"; ConsoleHelper.WriteLine("私信测试开始..."); var client1 = new MessageClient(uid1); client1.OnMessage += Client_OnMessage; client1.OnLogined += Client1_OnLogined; client1.OnError += Client_OnError; client1.ConnectAsync(); Console.ReadLine(); var client2 = new MessageClient(uid2); client2.OnMessage += Client_OnMessage; client2.OnError += Client_OnError; client2.OnLogined += Client2_OnLogined; client2.ConnectAsync(); Console.ReadLine(); var channelID = "all"; ConsoleHelper.WriteLine("频道信息测试开始..."); var client3 = new MessageClient(); client3.OnMessage += Client_OnMessage; client3.OnError += Client_OnError; client3.OnLogined += Client3_OnLogined; client3.ConnectAsync(); Console.ReadLine(); ConsoleHelper.WriteLine("订阅端测试开始..."); Parallel.For(0, 10000, (i) => { var ss = new MessageClient(); ss.OnLogined += Ss_OnLogined; ss.ConnectAsync(); }); Console.ReadLine(); ConsoleHelper.WriteLine("点击回车结束测试..."); // Console.ReadLine(); if (serverThread != null) { serverThread.Abort(); } }