2016-11-24 3 views
0

私はsignalRで.net webアプリケーションを作成しています。私の要件は、クライアントがホスティングを開始するときに、サーバーが自動的に現在の時刻値をクライアントに再帰的にいくつかの時間遅延でプッシュすることです。私はcode.ButシグナルRを自動的にクライアントにメッセージを送信できませんでしたか?SignalR:signalrの中で自動的にサーバーからクライアントに内容をプッシュしますか?

私は、signalRはクライアントからの入力を必要とすると考えました。私はsignalrがクライアントからの入力をhub.is経由で期待しているたびにクライアントがサーバーに自動的に呼び出すことを知っていましたか?

ところで、私はcode.isを書きましたか?

これは私のHUBである: -

public class timeHub : Hub 
    { 
    public void Send() 
    { 

     while(true) 
     { 
     var current = DateTime.Now.ToString("HH:mm:ss:tt"); 
     Clients.All.broadcastMessage(current); 
     Console.WriteLine(current); 
     Console.ReadLine(); 
     System.Threading.Thread.Sleep(5000); 

     } 
    } 
} 

マイOwin起動クラス: - javascriptのコード

 [assembly: OwinStartup(typeof(Time.Startup))] 

    namespace Time 
     { 
     public class Startup 
     { 
      public void Configuration(IAppBuilder app) 
     { 
      app.MapSignalR(); 

     } 
     } 
     } 

私のクライアント側は、次のとおりです。 -

 <div class="container"> 
     </div> 
     <script src="Scripts/jquery-1.6.4.min.js"></script> 
     <script src="Scripts/jquery.signalR-2.2.1.min.js"></script> 
     <script src="signalr/hubs"></script> 
     <script type="text/javascript"> 
     $(function() { 
     var chat = $.connection.timeHub; 
     chat.client.broadcastMessage = function (current) { 
      var now = current; 
      console.log(current); 
      $('div.container').append('<p><strong>' 
       + now + '</strong></p>'); 
     }; 
     $.connection.hub.start().done(function() { 

       chat.server.send(); 
      }); 
     }); 
     </script> 

私がプッシュするにはどうすればよいですサーバーからクライアントへ自動的に、クライアントがsignalrで呼び出さなくてもいいですか?

誰でも私にこの問題を解決するソリューションを提供できますか? ()メソッドを送信:私は何を見ていることは、あなたのコードである

My Empty Client Page

答えて

1

は何もあなたのtimeHubを呼び出していないことです。 ハブを定義し、無限ループのSend関数を定義しましたが、Send()ポンプの起動を忘れてしまったように見えます。
あなたはそれを呼び出す必要があります!あなたのSend()関数が返されることはないことを覚えておいてください。スレッドの呼び出しSend()はブロックされます。

メインスレッドがSend()の最初の呼び出しでブロックされないようにタスクを開始することをお勧めします。

幸運を祈る!

+0

おかげでMonza.afterメソッドがクリケットに追加されました。自動的にサーバーの応答を得ることはできません。 – creator

+0

$。connection.hub.start()。done(function(){ chat.server.send(); }); – creator

関連する問題