确定SignalR Core中的传输方法?

时间:2018-03-25 07:53:37

标签: signalr asp.net-core-signalr

在SignalR 2.0中,传输方法可以通过查询字符串中的string transportMethod = queryString["transport"]; 参数来确定。

Connection = Upgrade
Upgrade = Websocket

在SignalR for ASP.NET Core中似乎不是这种情况。

我能做的最好的事情就是使用标题信息。

对于 WebSocket 连接:

Connection = Keep-Alive

长轮询

Connection = Keep-Alive
Accept = text/event-stream

服务器发送的事件

df [['col_1', 'col_2']]

有更好/更简单的方法来确定传输方法吗?

3 个答案:

答案 0 :(得分:1)

您可以从HubCallerContext获取传输类型,如此

 Context.Items[ConnectionMetadataNames.Transport]

答案 1 :(得分:1)

获取Signalr TransportType。

Context.Features.Get<IHttpTransportFeature>().TransportType.ToString()

答案 2 :(得分:0)

https://stackoverflow.com/a/53577064/2068719

// using Microsoft.AspNetCore.Http.Connections.Features;

var transportType = Context.Features.Get<IHttpTransportFeature>().TransportType;