public static void Start() { LocalLogger.Log($"Method {nameof(HubService)} is running"); try { var credentialsManager = new CredentialsManager(Settings.ApiUrl, Settings.UserRelatedStoragePath, Settings.SystemRelatedStoragePath, "ArktinMonitor"); var bearerToken = credentialsManager.LoadJsonWebToken().AccessToken; if (!HubConnection.Headers.TryGetValue("Authorization", out var value)) { HubConnection.Headers.Add("Authorization", "Bearer " + bearerToken); } if (value != "Bearer " + bearerToken) { HubConnection.Headers["Authorization"] = "Bearer " + bearerToken; } if (_myHubProxy == null) { _myHubProxy = HubConnection.CreateHubProxy("MyComputerHub"); HubConnection.StateChanged += state => { _connectionId = HubConnection.ConnectionId; if (state.NewState == ConnectionState.Connected) { Pong(_connectionId); } LocalLogger.Log( $"State of connection to hub changed from {state.OldState} to {state.NewState}"); }; _myHubProxy.On <string, string>("command", ExecuteCommand); _myHubProxy.On <string, int>("powerAction", PowerAction); _myHubProxy.On <string>("ping", Pong); _myHubProxy.On("requestProcesses", GetProcesses); } LocalLogger.Log("Starting hub connection"); HubConnection.Start().Wait(); LocalLogger.Log("Joining to group"); JoinToGroup(); //Pong(_connectionId); } catch (Exception e) { LocalLogger.Log(nameof(Start), e); } HubConnection.Error += exception => { if (!(exception is System.TimeoutException)) { LocalLogger.Log(nameof(HubConnection.Error), exception); } }; }