2017-10-27 16 views
0

信号Rと統合された基本的なMVCアプリケーションがあります。このアプリケーションを使用してオンラインユーザーを追跡しています。続きSignalRはfirefoxとchromeのハブに接続しません

は私のハブクラスです

パブリッククラスUserHub:ハブ { 静的長いカウンタ= 0;続き

public override Task OnConnected() 
{ 
    //Update Count when User is connected 
    counter = counter+1; 
    Clients.All.UpdateCount(counter); 
    return base.OnConnected(); 
} 

public override Task OnDisconnected(bool stopCalled) 
{ 

    counter = counter-1; 
    Clients.All.UpdateCount(counter); 
    return base.OnDisconnected(stopCalled); 

} 

}

は私もstartup.csクラスに登録している私のjavascriptのコード

 $.connection.hub.logging = true; 
     //setup hubs 
     var userHub = $.connection.userHub; 
     $.connection.hub.start().done(function() { 

     }); 

     //function to recieve data from server 
     userHub.client.UpdateCount = function (count) { 
      $('#counter').text(count); 
     } 

です。

問題はsignalrです。「SignalR:ハブが購読されていません」というエラーが表示されます。5回のようにページをリフレッシュすると、信号rがハブに接続され、データが取得されます。

誰でもこの問題に直面しましたか?

何か助けていただければ幸いです。

ありがとうございました

答えて

0

スタートあなたがそうのように、クライアントの方法に加入している後に接続:

var cHub = $.connection.userHub; 
cHub.client.UpdateCount = function (count) { 
    $('#counter').text(count); 
} 

$.connection.hub.start(); 
+0

が、私はこれが動作するように起こる、これを試してみました。あなたはそれの背後にある理由を教えてくれますか? – ISHIDA

+1

ここで見てください:https://stackoverflow.com/questions/16064651/the-on-event-on-the-signalr-client-hub-does-not-get-called基本的に、signalRはハブクライアントに加入していますコールバックは開始時にコールバックを定義する必要があります。 – Ofir

0

タイムアウトを設定することで問題を解決できました。以下は私のコードです。

var cHub = $.connection.userHub; 
      setTimeout(function() { 
       $.connection.hub.start(); 
      }, 
       1000); 
      //function to recieve data from server 
      cHub.client.UpdateCount = function (count) { 
       $('#counter').text(count); 
      } 

      $.connection.hub.logging = true; 

私はまだFirefoxがそれをしている理由を理解できませんでした。

関連する問題