确定 SignalR Core 中的传输方法?
Determine transport method in SignalR Core?
在 SignalR 2.0 中,传输方法可以由查询字符串中的 transport
参数确定。
string transportMethod = queryString["transport"];
ASP.NET Core 的 SignalR 似乎并非如此。
看来,我能做的最好的事情就是使用 header 信息。
对于 WebSocket 连接:
Connection = Upgrade
Upgrade = Websocket
和长轮询:
Connection = Keep-Alive
和server-sent事件:
Connection = Keep-Alive
Accept = text/event-stream
是否有 better/easier 方法来确定传输方法?
您可以像这样从 HubCallerContext 获取传输类型
Context.Items[ConnectionMetadataNames.Transport]
获取 Signalr TransportType。
Context.Features.Get<IHttpTransportFeature>().TransportType.ToString()
// using Microsoft.AspNetCore.Http.Connections.Features;
var transportType = Context.Features.Get<IHttpTransportFeature>().TransportType;
在 SignalR 2.0 中,传输方法可以由查询字符串中的 transport
参数确定。
string transportMethod = queryString["transport"];
ASP.NET Core 的 SignalR 似乎并非如此。
看来,我能做的最好的事情就是使用 header 信息。
对于 WebSocket 连接:
Connection = Upgrade
Upgrade = Websocket
和长轮询:
Connection = Keep-Alive
和server-sent事件:
Connection = Keep-Alive
Accept = text/event-stream
是否有 better/easier 方法来确定传输方法?
您可以像这样从 HubCallerContext 获取传输类型
Context.Items[ConnectionMetadataNames.Transport]
获取 Signalr TransportType。
Context.Features.Get<IHttpTransportFeature>().TransportType.ToString()
// using Microsoft.AspNetCore.Http.Connections.Features;
var transportType = Context.Features.Get<IHttpTransportFeature>().TransportType;