我知道SignalR有它的传输方法层次结构:Websocket-> Server-Sent Events-> Forever Frame-> Long Polling
但是当我在每个浏览器中检查控制台时,我注意到传输总是长轮询。
我使用的是Windows 7,IIS Express 7.5和Visual Studio 2013(当然还有SignalR 2.0)。
我知道Websocket只支持IIS 8,但至少SSE或Forever Frame for IE应该可以工作。
例如在谷歌浏览器中,我得到了这个:
这意味着,Chrome正试图使用SSE吗?但为什么要取消呢?
这里是Fiddler与Internet Explorer的截图:
它是蓝色的......代码是200.(为什么有不同的端口?网站在端口4040下运行,但11437来自哪里?) 甚至没有解释,为什么IE不会继续使用SSE。
我的意思是,SSE / Forever Frame 可以与IIS 7.5一起使用,不是吗?
提前谢谢!
PS:在你问之前,我在家里而不是代理人
答案 0 :(得分:0)
对端口11437的SignalR请求由Visual Studio的新Browser Link feature创建,可以禁用。
您能告诉我们您的服务器端代码(特别是OnConnected中的任何内容)吗?查看对SSE和ForeverFrame / connect请求的响应也很有帮助。
最后,查看SignalR's server-side tracing可能会有所帮助。
答案 1 :(得分:0)
这有点晚了,但无论如何我想解决这个问题。
原因是Bitdefender Internet Security 2013。 它缓冲请求或类似的东西,我不确切地知道:X
无论如何,我卸载了它,这就是诀窍:D