SignalR如何决定使用哪种传输方法? [英] How does SignalR decide which transport method to be used?

查看:15
本文介绍了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如何决定使用哪种传输方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆