diff --git a/src/X1.WebSocket/Extensions/ServiceCollectionExtensions.cs b/src/X1.WebSocket/Extensions/ServiceCollectionExtensions.cs index 8f13340..09efb5d 100644 --- a/src/X1.WebSocket/Extensions/ServiceCollectionExtensions.cs +++ b/src/X1.WebSocket/Extensions/ServiceCollectionExtensions.cs @@ -37,8 +37,12 @@ public static class ServiceCollectionExtensions return services; } - public static IApplicationBuilder UseWebSocketMiddleware(this IApplicationBuilder app) + public static IApplicationBuilder UseWebSocketMiddleware(this IApplicationBuilder app, string path = "/ws") { - return app.UseMiddleware(); + // 路由匹配中间件,仅当路径匹配时才使用 WebSocketMiddleware + return app.Map(path, appBuilder => + { + appBuilder.UseMiddleware(); + }); } } \ No newline at end of file diff --git a/src/X1.WebSocket/Middleware/WebSocketMiddleware.cs b/src/X1.WebSocket/Middleware/WebSocketMiddleware.cs index 4190368..3efeb36 100644 --- a/src/X1.WebSocket/Middleware/WebSocketMiddleware.cs +++ b/src/X1.WebSocket/Middleware/WebSocketMiddleware.cs @@ -168,7 +168,6 @@ public class WebSocketMiddleware var buffer = ArrayPool.Shared.Rent(1024 * 4); // 从对象池获取消息通道 var messageChannel = _channelPool.Get(); - try { // 创建取消令牌源,设置连接超时 @@ -334,6 +333,7 @@ public class WebSocketMiddleware connectionId, receiveResult.MessageType, receiveResult.Count); await ProcessMessage(webSocket, connectionId, buffer, receiveResult, messageChannel, messageStartTime, cancellationToken); + messageStartTime = DateTime.UtcNow; } else { @@ -405,7 +405,7 @@ public class WebSocketMiddleware (long)processingTime); _messageBuffer.Reset(); - messageStartTime = DateTime.UtcNow; + //messageStartTime = DateTime.UtcNow; } });