Asp.net 在ASP Web API 2中向WebSocketHandler添加SecWebSocketProtocol头(子目录)

Asp.net 在ASP Web API 2中向WebSocketHandler添加SecWebSocketProtocol头(子目录),asp.net,iis,asp.net-web-api,websocket,Asp.net,Iis,Asp.net Web Api,Websocket,在ASP Web API中,升级到WebSocket需要初始化Microsoft.Web.WebSocket.WebSocketHandler。这种类型的WebSocket没有提供添加SecWebSocketProtocol头的选项,这对于我的案例是必不可少的(MQTToverWebSockets) 如何将此字段添加到WebSocketHandler HttpContext具有签名AcceptWebSocketRequest(Func userFunc)。您的示例未编译。不,它有一个重载,该重载

ASP Web API
中,升级到
WebSocket
需要初始化Microsoft.Web.WebSocket.WebSocketHandler。这种类型的
WebSocket
没有提供添加SecWebSocketProtocol头的选项,这对于我的案例是必不可少的(
MQTT
over
WebSockets


如何将此字段添加到WebSocketHandler

HttpContext
具有签名
AcceptWebSocketRequest(Func userFunc)。您的示例未编译。不,它有一个重载,该重载也接受Microsoft.Web.WebSocket.WebSocketHandler
public HttpResponseMessage Get()
{
    if (HttpContext.Current.IsWebSocketRequest || HttpContext.Current.IsWebSocketRequestUpgrading)
    {
       HttpContext.Current.AcceptWebSocketRequest(new WebSocketHandler());
       return Request.CreateResponse(HttpStatusCode.SwitchingProtocols);
    }

    else return new HttpResponseMessage(HttpStatusCode.BadRequest);
}