本文介绍了SignalR如何决定使用哪种传输方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
SignalR是用于实时连接的传输上的抽象。不过,我还是想知道,根据各种因素,它究竟是如何决定应该使用哪种交通方式的。我使用现有的文档做了一些研究,并查看了来源,想出了一个它是如何工作的想法。所以我的实际问题是,以下流程图是否正确,或者我是否遗漏了什么?
更新:
感谢您的投入!这里是根据您的修复更新的版本。但有一点我还是不确定:如果没有明确检查是否使用了IE9+,如果不是IE,不支持SSE,是什么触发ForeverFrame回退到LP的?
推荐答案
优秀的图表首先开始。
非常接近了!以下是一些修复:
Configured JSONP
Yes -> Use LP
No -> IsCrossDomain
Yes -> CORS Support?
No -> JSONP = true
-> Use LP
Yes -> Server Supports WebSockets
Yes -> Client Supports WebSockets
Yes -> Use WebSockets
No -> Use LP
No -> Use LP
No -> Use LP
还有一个小细节:ForeverFrame总是在SSE之前尝试(甚至在Chrome中也是如此),但在传输本身中,它会检查Eventsource(SSE的底层方法)是否存在,如果存在,则永久帧无法启动(以便它可以回退到SSE)。因此,IE9+绝不是直接检查。实施我的修复后,您的图表将是准确的。
这篇关于SignalR如何决定使用哪种传输方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!