4

私たちのアプリケーションはいくつかのレイヤーに分かれています。最も重要なものは次のとおりです。

  • データレイヤー
  • ビジネスレイヤー
  • プレゼンテーション層 (ASP.NET MVC 5)

ビジネス層は、SignalR (プレゼンテーション層) を介して、接続されたクライアントにいくつかの情報をライブ ブロードキャストする必要があります。それを行うためのベストプラクティスは何ですか?

ビジネス層は OWIN を使用して SignalR サーバーを自己ホストする必要がありますか? それとも、プレゼンテーション層が情報をプレゼンテーション層にプッシュするためにビジネス層によって呼び出される Web サービス (シグナルロジックを保持する) を定義する場合、よりクリーンですか?

より良いアイデアはありますか?

どうもありがとうレヴィ

4

2 に答える 2

1

SignalR 用のイベント アグリゲーター (サービス バス) プロキシを作成しました。これにより、ドメイン (ビジネス、データなど) のどこでもイベントを発生させることができ、クライアントに転送されます。

ナゲットを使ってインストール

Install-Package SignalR.EventAggregatorProxy 

セットアップに必要ないくつかの手順については、wiki に従ってください。https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki

設定が完了すると、JavaScript からイベントをリッスンできます

ViewModel = function() {
   signalR.eventAggregator.subscribe(MyApp.Events.TestEvent, this.onTestEvent, this);
};

デモプロジェクト:

https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/tree/master/SignalR.EventAggregatorProxy.Demo.MVC4

于 2013-10-30T16:44:57.453 に答える
0

ビジネス層に SignalR をインストールするだけ

インストール パッケージ Microsoft.AspNet.SignalR

と...

GlobalHost.ConnectionManager.GetHubContext<BroadcastHub>().Clients.All.Broadcast(message);

*BroadcastHub は次のように空にすることができます

public class NotificationHub : Hub
{

}

*message はブロードキャスト文字列メッセージです

これは私にとってはうまくいきました

于 2014-08-24T02:38:42.950 に答える