Ejemplo n.º 1
0
        public override void Initialize()
        {
            CommHub.NewClientEvent           += NotifyNewClientEvent;
            CommHub.ClientDisconnectedEvent  += NotifyClientDisconnectedEvent;
            CommHub.NewLogMessageEvent       += NotifyNewLogMessageEvent;
            CommHub.NewClientLogMessageEvent += NewClientLogMessageEvent;
            CommHub.MachineDataReceivedEvent += (id, data) =>
            {
                var client = _clients.FirstOrDefault(t => t.ID == id);
                if (client != null)
                {
                    client.ContainerVersion = data.ContainerVersion;
                    client.OperatingSystem  = data.OperatingSystem;
                    client.ProcessingUnit   = data.ProcessingUnit;
                    client.MachineName      = data.Name;
                    NotifyClientUpdatedEvent(client);
                }
            };
            CommHub.ClientStatusUpdatedEvent += (id, status) =>
            {
                var client = _clients.FirstOrDefault(t => t.ID == id);
                if (client != null)
                {
                    client.IsWorking             = status.IsWorking;
                    client.LastEpochDuration     = status.LastEpochDuration;
                    client.CurrentEpoch          = status.CurrentEpoch;
                    client.CurrentWorkParameters = status.CurrentWorkParameters;
                    NotifyClientUpdatedEvent(client);
                }
            };
            CommHub.WorkRequestedEvent   += (os, id) => WorkRequestedEvent?.Invoke(os, id);
            CommHub.ResultsReceivedEvent += (results, id) => ResultsReceivedEvent?.Invoke(results, id);

            try
            {
                _signalrapp = WebApp.Start <SignalRStartup>("http://*:8080/");
                NotifyNewLogMessageEvent("SignalR listener initialized to port 8080");
            }
            catch (Exception ex)
            {
                NotifyNewLogMessageEvent($"Could not start SignalR listener on port 8080. Are you running the application as admin? Exception: {ex.Message}");
            }

            base.Initialize();
        }
Ejemplo n.º 2
0
 public void SendResults(ResultPackage pResults)
 {
     //debug
     NewLogMessageEvent?.Invoke($"Result files received from {this.Context.ConnectionId} with {pResults.ResultFiles.Sum(t => t.FileData.Length)} bytes in {pResults.ResultFiles.Count} files");
     ResultsReceivedEvent?.Invoke(pResults, this.Context.ConnectionId);
 }