diff --git a/build/dependencies.props b/build/dependencies.props
index fb2814ddc5..28f7178f8a 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -49,6 +49,7 @@
2.1.0-preview1-275792.1.0-preview1-275792.1.0-preview1-27579
+ 2.1.0-preview1-275792.0.02.6.0-beta2-62211-0215.3.0
diff --git a/src/Microsoft.AspNetCore.Sockets/ConnectionManager.cs b/src/Microsoft.AspNetCore.Sockets/ConnectionManager.cs
index 9baa558045..58536855d8 100644
--- a/src/Microsoft.AspNetCore.Sockets/ConnectionManager.cs
+++ b/src/Microsoft.AspNetCore.Sockets/ConnectionManager.cs
@@ -58,6 +58,7 @@ namespace Microsoft.AspNetCore.Sockets
var id = MakeNewConnectionId();
_logger.CreatedNewConnection(id);
+ var connectionTimer = SocketEventSource.Log.ConnectionStart(id);
var transportToApplication = Channel.CreateUnbounded();
var applicationToTransport = Channel.CreateUnbounded();
@@ -66,6 +67,7 @@ namespace Microsoft.AspNetCore.Sockets
var applicationSide = ChannelConnection.Create(transportToApplication, applicationToTransport);
var connection = new DefaultConnectionContext(id, applicationSide, transportSide);
+ connection.ConnectionTimer = connectionTimer;
_connections.TryAdd(id, connection);
return connection;
@@ -73,9 +75,10 @@ namespace Microsoft.AspNetCore.Sockets
public void RemoveConnection(string id)
{
- if (_connections.TryRemove(id, out _))
+ if (_connections.TryRemove(id, out var connection))
{
// Remove the connection completely
+ SocketEventSource.Log.ConnectionStop(id, connection.ConnectionTimer);
_logger.RemovedConnection(id);
}
}
@@ -135,6 +138,8 @@ namespace Microsoft.AspNetCore.Sockets
// Once the decision has been made to dispose we don't check the status again
if (status == DefaultConnectionContext.ConnectionStatus.Inactive && (DateTimeOffset.UtcNow - lastSeenUtc).TotalSeconds > 5)
{
+ _logger.ConnectionTimedOut(c.Value.ConnectionId);
+ SocketEventSource.Log.ConnectionTimedOut(c.Value.ConnectionId);
var ignore = DisposeAndRemoveAsync(c.Value);
}
}
diff --git a/src/Microsoft.AspNetCore.Sockets/DefaultConnectionContext.cs b/src/Microsoft.AspNetCore.Sockets/DefaultConnectionContext.cs
index 990827767b..5c7c853a2d 100644
--- a/src/Microsoft.AspNetCore.Sockets/DefaultConnectionContext.cs
+++ b/src/Microsoft.AspNetCore.Sockets/DefaultConnectionContext.cs
@@ -9,6 +9,7 @@ using System.Threading.Tasks;
using System.Threading.Channels;
using Microsoft.AspNetCore.Http.Features;
using Microsoft.AspNetCore.Sockets.Features;
+using Microsoft.Extensions.Internal;
namespace Microsoft.AspNetCore.Sockets
{
@@ -22,6 +23,7 @@ namespace Microsoft.AspNetCore.Sockets
// This tcs exists so that multiple calls to DisposeAsync all wait asynchronously
// on the same task
private TaskCompletionSource