2つのsignalRコアハブ間の通信

Aug 17 2020

独自のSignalRCore C#ハブ(CおよびD)を備えた2つのsignalR Core Typescriptアプリ(AおよびB)があります。

いいえ、BのAから何かをトリガーしたいと思います。私の計画は、トリガーメッセージをAからCに送信し、次にCがそれをDにリダイレクトしてBに送信することでした。他の方向でも同じことが可能です。

ハブは互いに独立しているため、一方のハブをもう一方のハブの一部にすることはできません。私が思いついた唯一の解決策は、2つのSignalR Core C#クライアントを使用してハブ間で通信することですが、それは大きなオーバーヘッドのようです。それとも行く方法ですか?

回答

1 FeiHan Aug 20 2020 at 15:06

独自のSignalRCore C#ハブ(CおよびD)を備えた2つのsignalR Core Typescriptアプリ(AおよびB)があります。

いいえ、BのAから何かをトリガーしたいです。

上記の要件を達成するために、以下の可能なアプローチを参照できます。

アプローチ1:実装を変更し、既存の機能を単一のハブクラスにマージすると、SignalR Typescriptクライアントアプリ(AおよびB)を同じハブサーバーに接続して相互に通信させることができます。

アプローチ2:クライアントユーザーごとにSignalR Typescriptクライアントアプリ(AおよびB)でハブCとハブDの両方への接続を確立し、TypescriptクライアントアプリAを使用するユーザーがTypescriptクライアントアプリBのユーザーとも通信できるようにします。

アプローチ3:前述のように、Microsoft.AspNetCore.SignalR.Clientパッケージをインストールし、SignalR .NETクライアントロジックをハブサーバープロジェクト(AおよびB)に実装します。これにより、サーバーとSignalR.NETクライアントの両方として機能します。

アプローチ4: @ Kiril1512で述べたように、キューベース(またはサービスバスベースなど)のジョブである可能性のある別のプロジェクトにSignalR.NETクライアントロジックを実装できます。SignalR TypescriptクライアントアプリAのユーザーがハブDに接続しているSignalRTypescriptクライアントアプリBのユーザーと通信する場合、ハブCに特定のメッセージを送信して新しいキューメッセージを追加すると、そのジョブがトリガーされ、ハブメソッドが呼び出されます。以下のように、SignalRTypescriptクライアントアプリBから特定のユーザーにメッセージをプッシュするハブサーバーD。

2 Kiril1512 Aug 18 2020 at 05:41

まず第一に、これは意見の質問なので、多分閉鎖されるでしょう。

しかし、より良いアプローチはService Bus、イベントベースのコミュニケーションのようなものを使用して実装することだと思います。したがって、Aで何かが発生し、Cでハブメソッドを呼び出してから、Dにイベントを送信するとsignalR、Aを介してトリガーされます。イベントバスを使用すると、たとえば、それらのイベントを受信して​​実行できる別のハブ(E)を追加するオプションが追加されます。他の何か。