如何通过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就够了。
我正在尝试使用 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就够了。