ASP.NET Core WebSocket握手失败。

3

我正在尝试使用ASP.NET Core WebSocket,但在JavaScript中执行new WebSocket("ws://localhost:5702");时出现以下错误:

WebSocket connection to 'ws://localhost:5702/' failed: Error during WebSocket handshake: Unexpected response code: 200

我在Startup.cs中的配置方法:

public void Configure(IApplicationBuilder app)
{
     app.UseDefaultFiles();

     app.UseStaticFiles();

     app.UseWebSockets();
     app.UseWebSocketHandler();
}

我的Middlewares\WebSocketMiddleware.cs文件:
WebSocketMiddleware.cs

有人知道吗?

谢谢。

1个回答

6
您所遇到的问题是因为其他中间件(如UseStaticFiles)向您的WebSocket客户端返回了200 OK代码。
为了避免这种情况,请确保在UseStaticFiles()之前放置WebSocket中间件。个人建议将其放置在顶部,如下所示:
    public void Configure(IApplicationBuilder app)
    {
        //first handle any websocket requests
        app.UseWebSockets();
        app.UseWebSocketHandler();

        //now handle other requests (default, static files, mvc actions, ...)
        app.UseDefaultFiles();
        app.UseStaticFiles();
        //app.UseMvc(...);
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接