gpt4 book ai didi

javascript - 握手期间 ASP.NET Core WebSocket 失败

转载 作者:太空宇宙 更新时间:2023-11-03 21:03:31 27 4
gpt4 key购买 nike

我正在尝试使用 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 中的 Configure 方法:

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

app.UseStaticFiles();

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

我的Middlewares\WebSocketMiddleware.cs:
WebSocketMiddleware.cs

有人知道吗?

谢谢。

最佳答案

您遇到的行为是因为某些其他中间件 (UseStaticFiles) 正在向您的 websocket 客户端返回 200 OK 代码。

为避免这种情况,请确保将 WebSocket 中间件放在之前 UseStaticFiles()。就个人而言,我会把它放在顶部,像这样:

    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(...);
}

关于javascript - 握手期间 ASP.NET Core WebSocket 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42980691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com