WebSockets 服务器 .NET Core - IsWebSocketRequest 总是 returns false
WebSockets Server .NET Core - IsWebSocketRequest always returns false
我正在使用 .NET Core 中一些我认为相当“标准”的代码来实现 Web 套接字服务器:
if (ctx.Request.Path == "/api/v1/sometest")
{
if (ctx.WebSockets.IsWebSocketRequest)
{
WebSocket wsSock = await ctx.WebSockets.AcceptWebSocketAsync();
但我永远无法建立 session 因为 IsWebSocketRequest 始终为 null。
我可以看到连接:升级和升级:websocket headers...
我知道我一定遗漏了一些东西,但不确定是什么...扫描了 github dotnet 源代码,看看我是否可以那样解决问题,但还没有找到解决方案。
我正在使用 Windows 10
红隼
VS代码
.NET 核心 3.1
我在 Startup.ConfigureServices 中有 AddWebSockets,但我忘了在 Startup.Configure 中也包含中间件。在此处调用 app.UseWebSockets 以在您的链中注册中间件。
根据这个 link app.UseWebSockets() 应该放在 startup.cs 中的 app.UseEndpoints() 之前。
我正在使用 .NET Core 中一些我认为相当“标准”的代码来实现 Web 套接字服务器:
if (ctx.Request.Path == "/api/v1/sometest")
{
if (ctx.WebSockets.IsWebSocketRequest)
{
WebSocket wsSock = await ctx.WebSockets.AcceptWebSocketAsync();
但我永远无法建立 session 因为 IsWebSocketRequest 始终为 null。
我可以看到连接:升级和升级:websocket headers...
我知道我一定遗漏了一些东西,但不确定是什么...扫描了 github dotnet 源代码,看看我是否可以那样解决问题,但还没有找到解决方案。
我正在使用 Windows 10 红隼 VS代码 .NET 核心 3.1
我在 Startup.ConfigureServices 中有 AddWebSockets,但我忘了在 Startup.Configure 中也包含中间件。在此处调用 app.UseWebSockets 以在您的链中注册中间件。
根据这个 link app.UseWebSockets() 应该放在 startup.cs 中的 app.UseEndpoints() 之前。