我正在学习使用SignalR,到目前为止,我在这方面取得了成功。我可以实现集线器,我可以实现业务逻辑,我可以从服务器调用客户端功能,我可以从客户端调用服务器端方法,这很棒。令我困惑的是理论。为什么SIgnalR更喜欢Forever Frames轮询?
事实上,我从这个video收集信息。 SignalR使用的是WebSockets,它通过单个TCP连接提供full duplex channel。如果没有可用的WebSocket,则回退协议将为EventSource。如果不可用,那么将使用Forever Frame。如果不可用,那么将使用长轮询。对于我来说很奇怪的是,一个非常冒险的解决方案,如永远的框架比较老的惯例更受欢迎,我对SignalR决定将永久框架作为第三选项和投票作为第四选项的理由感兴趣。
我试图找出这个问题的答案,我发现它是传言there is a 3x max latency time in the case of long polling compared to forever frames。这是一个事实吗?如果是这样,这是所有浏览器或子集的事实吗?
理解并感谢您的答复,这已经是值得赞赏的。但是,我想知道是否可以真实地确认每次轮询器发送数据时由于需要打开HTTP通道而产生的3倍延迟实际上存在。 –
发送数据的方式相同 - 在这两种情况下都会创建一个新的http请求,所以我会说在发送数据时foreverFrame和longPolling之间的延迟没有区别。 – Pawel
接收时有延迟吗? –