2016-09-08 6 views
1

Microsoft SignalRを使用して、ブラウザに通知をプッシュします。これらの通知は、他のブラウザからのアクションによってトリガーされます。私は時々通知を送るバックグラウンドタスクを作りたいと思う。たとえば、12時45分21秒には、何もしていないとしても、接続されているすべてのユーザーに通知を出したいと思っています。それは可能ですか?SignalRでバックグラウンドタスクを実行することはできますか

答えて

3

SignalRはバックグラウンドタスクを実行する機能を提供していませんが、バックグラウンドタスクを実行している場合は、SignalRハブを使用してクライアントメソッドを呼び出し、必要な通知を送信することはありません。

バックグラウンドタスクを起動して制御するには、Hangfireが役立つ柔軟なライブラリです。

編集追加する:また、私はあなたのコメントから収集します。あなたは、Windowsのサービスでこれをやりたい解明したので、別の建物を支援するために著名な図書館およびデプロイサービスがTopShelf

編集を追加することですバックグラウンドタスクからハブオブジェクトにアクセスする方法を理解しようとしていますか?これを行うには多くの方法がありますが、テスト容易性とプログラムの保守性を向上させるために、IoC(Inversion of Control)コンテナを使用し、必要な参照を挿入することをお勧めします - このチュートリアル:Dependency Injection in SignalRにはNinjectライブラリを使用したチュートリアルがあります。このウォークスルーはasp.netホスティング向けですが、あなたが見つけたリンクはWindowsサービスに適応するのに役立ちます。

+0

signalRに情報を送信するWindowsサービスを記述するのは簡単だと思いますか? – Bob5421

+0

私は何かを見つけたと思う:https://code.msdn.microsoft.com/windowsapps/SignalR-self-hosted-in-6ff7e6c3/sourcecode?fileId=116569&pathId=163103385これは私の問題のために働くと思いますか? – Bob5421

+0

実際に私が知りたいことは:自己ホスト信号Rプログラムの場合、どのようにメインプログラムとハブへのアクセスにタイマーを入れることができますか? – Bob5421

関連する問題