SignalR站點瀏覽器連接數限制分析及解決方案

知道91 | 教程 | 2017-12-03 | 閱讀:3427

SignalR 搭建實時刷新應用雖然非常方便,但是有個問題你必須考慮到,就是一般的瀏覽器,對于SignalR的全雙工通信方式,絕大多數瀏覽器都只支持6個新窗口,如果你打開第7個,那么新的框口頁面是不會加載的。

這其實是客戶端瀏覽器的限制,這是以連接的域名為單位來限制, 如果是最新版本的IE似乎沒有這個限制,但是其他瀏覽器似乎都會存在,可以查看 browserscope 查看具體情況。

如果你使用WebSockets的傳輸方式是不會有這個限制,如果有限制就證明你不是使用的WebSockets傳輸方式,但是WebSockets傳輸服務器需要一定的限制,關于限制你可以查看SignalR平臺配置要求

對于用戶你永遠都不會知道是否會打開多余6個的瀏覽器窗口,對于這種情況只有下面幾個解決方法:

  1. 不管這個問題,當然這會帶來一定幾率的用戶體驗。
  2. 選擇合適的傳輸方式,解決SignalR連接數的限制,比如使用WebSockets傳輸方法。
  3. 使用其他第三方商家的解決方案。
  4. 觀察用戶瀏覽器窗口的打開數目

    • 限制連接數
    • 監控激活的連接
  5. 通過使用多用域名來繞過這個問題,因為的6個連接的限制是針對每個域名。

SignalR 站點瀏覽器連接數限制分析及解決方案

我們來分析下解決方案

不管SignalR連接數限制

你需要思考的是誰會打開6個以上的瀏覽器框口?如果是一個聊天室應用或者單頁面應用完全就可以忽略SignalR連接數限制。

選擇合適的傳輸方式

只有使用WebSockets的傳輸方式才不會有連接數的限制,即時是在老的瀏覽器也不會造成瀏覽器崩潰的情況。

使用第三方專業方案解決SignalR連接數限制

使用一些第三方專業的解決即時通信的問題,比如可以使用 http://www.lightstreamer.com/。這個連接最大可以支持到2000萬個

通過使用多個域名解決SignalR連接數限制

SignalR瀏覽器的連接限制只是針對一個域名,所以我們可以通過域名來解決:

  • 使用另外的域名(你需要解決跨站請求偽造)。
  • 使用二級域名(如果你的網站的是HTTPS請求,最好使用泛域名SSL證書)。

以上就是SignalR 站點瀏覽器連接數限制分析及解決方案,你需要針對你的實際情況選擇合適的方法來解決。

福彩3d开机号