如何通过Controller连接到WebSocket?

How to connect to WebSocket through Controller?

我正在尝试使用 Postman 通过控制器连接到 WebSocket,但 isSocketRequest 保持错误,我错过了什么?

  public class WebSocketController : ControllerBase
  {
    [HttpGet]
    [AllowAnonymous]
    public async Task Get()
    {
        var context = ControllerContext.HttpContext;

        var isSocketRequest = context.WebSockets.IsWebSocketRequest;

        Helper.SaveLog("WebSocketController: " + isSocketRequest);

        if (isSocketRequest)
        {
            WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync();
            context.Response.StatusCode = 200;
        }
        else
        {
            context.Response.StatusCode = 400;
        }
    }

您必须在 Startup.cs 中的 Configure() 中添加 app.UseWebSockets();。另外你不应该设置StatusCode = 200;,否则客户端会抛出错误。接受websocket就够了。