2014-01-13 68 views
1

我有一個ASP.NET WebForms應用程序,它具有多個SignalR集線器,這些集線器將從WPF應用程序調用。最初,我通過控制檯應用程序而不是WPF應用程序對此進行了測試,以證明這一概念。這真是太棒了,瞬間。SignalR - 從WPF應用程序調用集線器的速度很慢

最近我已經開始在WPF應用程序中調用集線器,使用完全相同的代碼,並且我遇到了很多速度問題(均在本地和遠程調用時) - connection.Start()。 ()通話可能需要長達30秒!

有什麼明確的理由,爲什麼連接到WPF中的http url可能會很慢?我的代碼調用如下。我曾嘗試在單獨的線程中執行調用,但這並沒有幫助。

private static void Execute(string hubName, List<KeyValuePair<string,object[]>> items) 
    { 
      FBDBDataContext dc = new FBDBDataContext(); 
      string url = ConfigurationManager.AppSettings["WebURL"]; 
      var connection = new HubConnection(url); 
      IHubProxy myHub = connection.CreateHubProxy(hubName); 

      connection.Start().Wait(); // not sure if you need this if you are simply posting to the hub 

      foreach (var kvp in items) 
       myHub.Invoke(kvp.Key, kvp.Value); 
    } 
+0

嘗試跟蹤連接,看看是否會產生更多關於爲什麼SignalR需要30秒才能連接的信息。您可以直接跟蹤控制檯,如下所示:'connection.TraceWriter = Console.Out;'。 – halter73

回答

2

您不應在每次希望與服務器通信時創建新連接。在程序開始時創建一次並重新使用它。

+0

輝煌的,我已經調整了我的代碼來存儲連接,現在它又一次了!謝謝 – Chris

相關問題