Browse Source

修复接收数据超时问题 注册添加路由问题

feature/x1-web-request
hyh 1 week ago
parent
commit
95745f2343
  1. 8
      src/X1.WebSocket/Extensions/ServiceCollectionExtensions.cs
  2. 4
      src/X1.WebSocket/Middleware/WebSocketMiddleware.cs

8
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>();
// 路由匹配中间件,仅当路径匹配时才使用 WebSocketMiddleware
return app.Map(path, appBuilder =>
{
appBuilder.UseMiddleware<WebSocketMiddleware>();
});
}
}

4
src/X1.WebSocket/Middleware/WebSocketMiddleware.cs

@ -168,7 +168,6 @@ public class WebSocketMiddleware
var buffer = ArrayPool<byte>.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;
}
});

Loading…
Cancel
Save