2012-02-08 40 views

回答

1

任何問題或不兼容使用不一定是因爲SignalR本身的結果,而是打開一個普通的機制HTTP客戶端和服務器之間的雙工通信通道(即技術範圍AKA'Comet')。

SignalR旨在使用Websocket,如果客戶端和服務器都支持它(值得一提的是,Websocket spec目前處於候選推薦標準,因此尚未最終確定,儘管它接近)。隱含的是,客戶端和服務器之間的代理也將支持它。

如果客戶端,服務器和代理其間不支持WebSocket的那麼SignalR將嘗試回退到服務器發送事件,然後如果SSE不支持,長輪詢。

的顯著問題是,這些技術一般依賴於一個持久連接上正在舉行某種方式打開。您的代理/加速器可能會很好地決定這些效率低下,並且如果數據沒有在它們之間進行流式傳輸,則會將其關閉;在這種情況下,SignalR客戶端將通過設計再次打開連接,但需要花費時間重新建立連接。

您可能可以配置您的代理來檢查已打開的連接的類型,以及它是否可能是與SignalR端點的連接,從而使其關閉連接的積極性降低。