SignalR - 检测服务器端连接的传输方法

bla*_*ter 17 signalr

您能否在服务器端识别出哪种传输方法用于给定的SignalR连接?(WebSockets,SSE,长轮询等?​​)

hal*_*r73 18

在Hub内部,您可以通过查看请求的查询字符串来检测正在使用的传输:

Context.QueryString["transport"]
Run Code Online (Sandbox Code Playgroud)

这将评估为"webSockets","serverSentEvents","foreverFrame"或"longPolling".

理想情况下,您的代码不应该依赖于使用哪种传输,因为SignalR会为您提取摘要.但是,这可能对日志记录等有用.


Chr*_*oon 5

对于ASP.NET SignalR 2.0版,您可以使用$.connection.hub.transport.name打印输出的名称.它将评估为"serverSentEvents"和其他传输.

  • 对客户来说非常方便。尽管按照OP的要求,服务器端并不方便。 (2认同)