Example #1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton <Try <IMongoDatabase>, TryMongoService>();
            services.AddTransient <IEnvironmentService, EnvironmentService>();
            services.AddTransient <IShell, ShellService>();
            services.AddTransient <INginxService, NginxService>();
            services.AddSingleton <IProcessManager, ProcessManager>();
            services.AddSingleton <NewWebsocekthandler, NewWebsocekthandler>();

            ISocketServicec service = null;

            services.AddSingleton <ISocketServicec>(p => {
                if (service != null)
                {
                    return(service);
                }
                else
                {
                    service = new SocketService();
                    return(service);
                }
            });
            services.AddSingleton <IMonitorService, MonitorService>();
            services.AddMvc();
        }
Example #2
0
 public MonitorService(
     ISocketServicec socketServicec,
     Try <IMongoDatabase> db,
     IProcessManager processManager
     )
 {
     this.socketServicec      = socketServicec;
     this.db                  = db;
     _processManager          = processManager;
     db.databaseStatusChange += isOnline => {
         System.Console.WriteLine("status callback");
         socketServicec.Broadcast(new { isOnline = isOnline }, "_mongoStatus");
     };
 }
Example #3
0
 public NewWebsocekthandler(Try <IMongoDatabase> db, ISocketServicec socektService)
 {
     _db = db;
     socektService.newWebsocket += (socket, type) => {
         if (type == "_mongoPerformance")
         {
             SendInitialData(socket);
         }
         else if (type == "_mongoStatus")
         {
             socket.SendJson(new { isOnline = db.IsOnline });
         }
         else
         {
             SendAppPerf(socket, type);
         };
     };
 }
 public ServeWebsocketMiddleware(RequestDelegate next, ISocketServicec socektService)
 {
     this._next          = next;
     this._socektService = socektService;
 }