SignalR がクライアントを更新できるようにする分離された方法を作成しました。私のライブラリは nuget Install using にあります。
Install-Package SignalR.EventAggregatorProxy
ウィキ: https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki
フレームワークが機能するには、サービス バスまたは「EventAggregator」が必要です。特定のサービス バスまたはイベント アグリゲーター用にハードコーディングしていないため、プロキシを作成する必要があります。Caliburn micro には、プロセス イベント アグリゲーターを使用してインストールできる軽量のプロセス イベント アグリゲーターがあります。
Install-Package Caliburn.Micro.EventAggregator
次に、私のライブラリと CM.EA の間にプロキシを作成する必要があります。その後、データ アクセス レイヤーで発行されたメッセージは自動的にクライアントに転送されます。彼らは次のようなイベントを聞くことができます
signalR.eventAggregator.subscribe(MyApp.Events.TestEvent, this.onTestEvent, this);
次のような一般的なイベントを使用することもできます
signalR.eventAggregator.subscribe(MyApp.Events.MyGenericEvent.of("System.String"), this.onMyGenericEvent, this);
編集:クライアントにJSではなくWPFを使用していることに気付きました。申し訳ありません。現在、lib は Web アプリを対象としています。もちろん、C# クライアントでも機能するはずです。C# クライアントのサポートはすぐにロードマップに追加されます。
更新: .NET クライアントが利用できるようになりました。サーバーはまだ IIS でホストされているだけです。
Install-Package SignalR.EventAggregatorProxy.Client.DotNet
ウィキ: https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki/.NET-Client
.NET クラスは、次のようなイベントをリッスンできます。
public class MyViewModel : IHandle<MyEvent>
{
public MyViewModel(IEventAggregator eventAggregator)
{
eventAggregator.Subscribe(this);
}
public void Handle(MyEvent message)
{
//Act on MyEvent
}
}
詳細についてはウィキを参照してください