我尝试使用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
有人知道吗?
谢谢。
答案 0 :(得分:3)
您遇到的行为是因为其他一些中间件(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(...);
}