确定信号R核心中的传输方法



在 SignalR 2.0 中,传输方法可以通过查询字符串中的transport参数确定。

string transportMethod = queryString["transport"];

SignalR 中,ASP.NET Core 似乎并非如此。

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

对于 WebSocket 连接:

Connection = Upgrade
Upgrade = Websocket

长轮询

Connection = Keep-Alive

服务器发送的事件

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

有没有更好/更简单的方法来确定运输方式?

获取信号器传输类型。

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

你可以像这样从HubCallerContext获取传输类型

 Context.Items[ConnectionMetadataNames.Transport]

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

// using Microsoft.AspNetCore.Http.Connections.Features;
var transportType = Context.Features.Get<IHttpTransportFeature>().TransportType;

最新更新