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() 之前。