Crankier: Log connection exceptions (#9045)
This commit is contained in:
parent
9158039c95
commit
3b32f43453
|
|
@ -12,12 +12,27 @@ namespace Microsoft.AspNetCore.SignalR.Crankier
|
||||||
{
|
{
|
||||||
public class Client
|
public class Client
|
||||||
{
|
{
|
||||||
|
private readonly int _processId;
|
||||||
|
private readonly IAgent _agent;
|
||||||
private HubConnection _connection;
|
private HubConnection _connection;
|
||||||
private CancellationTokenSource _sendCts;
|
private CancellationTokenSource _sendCts;
|
||||||
private bool _sendInProgress;
|
private bool _sendInProgress;
|
||||||
private volatile ConnectionState _connectionState = ConnectionState.Connecting;
|
private volatile ConnectionState _connectionState = ConnectionState.Connecting;
|
||||||
|
|
||||||
public ConnectionState State => _connectionState;
|
public ConnectionState State => _connectionState;
|
||||||
|
public Client(int processId, IAgent agent)
|
||||||
|
{
|
||||||
|
_processId = processId;
|
||||||
|
_agent = agent;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LogFault(string description, Exception exception)
|
||||||
|
{
|
||||||
|
var message = $"{description}: {exception.GetType()}: {exception.Message}";
|
||||||
|
Trace.WriteLine(message);
|
||||||
|
_agent.LogAsync(_processId, message);
|
||||||
|
}
|
||||||
|
|
||||||
public async Task CreateAndStartConnectionAsync(string url, HttpTransportType transportType)
|
public async Task CreateAndStartConnectionAsync(string url, HttpTransportType transportType)
|
||||||
{
|
{
|
||||||
_connection = new HubConnectionBuilder()
|
_connection = new HubConnectionBuilder()
|
||||||
|
|
@ -33,7 +48,7 @@ namespace Microsoft.AspNetCore.SignalR.Crankier
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Trace.WriteLine($"Connection terminated with error: {ex.GetType()}: {ex.Message}");
|
LogFault("Connection terminated with error", ex);
|
||||||
_connectionState = ConnectionState.Faulted;
|
_connectionState = ConnectionState.Faulted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -57,7 +72,7 @@ namespace Microsoft.AspNetCore.SignalR.Crankier
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Trace.WriteLine($"Connection.Start Failed: {ex.GetType()}: {ex.Message}");
|
LogFault("Connection.Start Failed", ex);
|
||||||
|
|
||||||
if (connectCount == 3)
|
if (connectCount == 3)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.SignalR.Crankier
|
||||||
_targetConnectionCount += numberOfConnections;
|
_targetConnectionCount += numberOfConnections;
|
||||||
for (var count = 0; count < numberOfConnections; count++)
|
for (var count = 0; count < numberOfConnections; count++)
|
||||||
{
|
{
|
||||||
var client = new Client();
|
var client = new Client(_processId, _agent);
|
||||||
_clients.Add(client);
|
_clients.Add(client);
|
||||||
|
|
||||||
await client.CreateAndStartConnectionAsync(targetAddress, transportType);
|
await client.CreateAndStartConnectionAsync(targetAddress, transportType);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue