2015-04-02 59 views
1

我已經開始遇到性能問題,特別是在升級到版本2.2.0後。SignalR慢啓動連接(並檢索數據)

使用更復雜的頁面,它使用斷絕不同的集線器,它可能需要長達30秒的啓動連接:

[16:20:35 GMT+0100 (GMT Daylight Time)] SignalR: serverSentEvents transport connected. Initiating start request. 
[16:21:05 GMT+0100 (GMT Daylight Time)] SignalR: The start request succeeded. Transitioning to the connected state. 

爲了說明這個問題,我創建了一個測試頁面,僅使用一個樞紐。我在集線器上調用服務器方法,只檢索一個int值,而不進行任何數據庫調用或任何複雜的計算。

define(["knockout", "jquery", "signalr"], 
    function (ko, $) { 
     function SignalRTestViewModel() { 
      var self = this; 
      var connection = $.connection.dashboardHub; 

      self.init = function() { 
       connection.server.signalRTest(); 
      }; 

      self.test = ko.observable(); 

      connection.client.populateSignalRTest = function (test) { 
       self.test(test); 
      }; 
     } 

     return SignalRTestViewModel; 
    }) 

它仍然需要2-3秒來啓動連接,而另外2秒才能檢索到一個int值。

enter image description here

的問題是不同的傳輸方法(serverSentEvents,longPolling)相同,存在於所有的瀏覽器。

我不太清楚如何縮小問題的範圍,以及可能導致這些延誤的原因。任何幫助將不勝感激。

回答

2

經過大量調試後,我發現其中一個依賴關係正在我的很多服務中解決,它在每次解決問題時都會驗證Lucene搜索索引(這完全是不必要的)。

評論它,一切似乎確定。