問題タブ [signalr-backplane]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
658 参照

asp.net - Azure Service Bus を通過する SignalR メッセージが SignalR Web クライアントに伝達されない

Azure WebJob から Web サーバー上で実行されているブラウザー クライアントに SignalR メッセージを直接送信したいので、WebJob とサーバーの両方で Azure Service Bus をバックプレーンとして使用するように SignalR を構成しました。WebJob から送信されたメッセージは Service Bus トピック キューに送信され、Web サーバーによって取得されますが、接続されている SignalR Web クライアントには送信されません。これは自動的に行われると思っていましたが、どうにかして Web サーバーから WebJob SignalR メッセージをサブスクライブし、手動でブラウザー クライアントに伝達する必要がありますか?

いくつかのコードを貼り付けますが、エラーが発生していないため、何が関連しているのかわかりません。サービス バスを介して Web ジョブから Web サーバーへのメッセージを追跡できますが、各 Web サーバーで実行されている SignalR ブラウザー クライアントには何も到達しません。

顕著な点;

  • 各ハブ インスタンスは、同じハブ名を使用して登録されます
  • WebJob と Web サーバーの両方が同じ Service Bus バックプレーン接続文字列を使用している
  • メッセージが正しいトピックに送信され、正しいサブスクリプションが読み取られていることがわかります

WebJob からのトレース情報:

SignalR.ServiceBusMessageBus 情報: 0: サービス バスで 5 つのトピックをサブスクライブしています... SignalR.ServiceBusMessageBus 情報: 0: 新しいトピック クライアントの作成 SIGNALR_TOPIC_SignalREvents_0 が正常に完了しました。SignalR.ServiceBusMessageBus 情報: 0 : サービス バスのトピック SIGNALR_TOPIC_SignalREvents_0 の新しいサブスクリプション 2ea68ce5-58fe-4218-8768-e03675be8e74 の作成が正常に完了しました。SignalR.ServiceBusMessageBus 情報: 0 : サービス バスのサブスクリプション エンティティ パス SIGNALR_TOPIC_SignalREvents_0/Subscriptions/2ea68ce5-58fe-4218-8768-e03675be8e74 のメッセージ受信の作成が正常に完了しました。SignalR.ScaleoutMessageBus 情報: 0 : ストリーム (0) - 状態が初期からオープン (x5) に変更されました SignalR.ServiceBusMessageBus 情報: 0 : サービス バス トピック サービスの 5 つのトピックへのサブスクリプションが正常に完了しました。SignalR.ServiceBusMessageBus Verbose: 0: Service Bus 経由で 68 バイトを送信中: {"H":"auctionHub","M":"Init","A":[{"Price":569.72,"Symbol":"GOOG" }]} SignalR.ServiceBusMessageBus Verbose: 0: Service Bus 経由で 68 バイトを送信中: {"H":"auctionHub","M":"Init","A":[{"Price":577.38,"Symbol": "APPL"}]} SignalR.ServiceBusMessageBus Verbose: 0: Service Bus 経由で 68 バイトを受信中: {"H":"auctionHub","M":"Init","A":[{"Price":569.72," Symbol":"GOOG"}]} SignalR.ScaleoutMessageBus 情報: 0 : OnReceived(4, 65, 1)

Web サーバーからのトレース

SignalR.ServiceBusMessageBus 情報: 0: サービス バスで 5 つのトピックをサブスクライブしています... SignalR.ServiceBusMessageBus 情報: 0: 新しいトピック クライアントの作成 SIGNALR_TOPIC_SignalREvents_0 が正常に完了しました。SignalR.ServiceBusMessageBus 情報: 0 : サービス バスのトピック SIGNALR_TOPIC_SignalREvents_0 の新しいサブスクリプション e6afd744-7724-4ab5-8fd9-2717a62caf61 の作成が正常に完了しました。SignalR.ServiceBusMessageBus 情報: 0 : サービス バスのサブスクリプション エンティティ パス SIGNALR_TOPIC_SignalREvents_0/Subscriptions/e6afd744-7724-4ab5-8fd9-2717a62caf61 のメッセージ受信の作成が正常に完了しました。SignalR.ScaleoutMessageBus 情報: 0 : Stream(0) - 状態を初期からオープンに変更 SignalR.ServiceBusMessageBus 情報: 0 : 新しいトピック クライアント SIGNALR_TOPIC_SignalREvents_1 の作成が正常に完了しました。SignalR.ServiceBusMessageBus 情報: 0 : サービス バスでのトピック SIGNALR_TOPIC_SignalREvents_1 の新しいサブスクリプション 2c155757-123f-44ba-ace7-96a6b390234e の作成が正常に完了しました。SignalR.ServiceBusMessageBus 情報: 0 : サービス バス内のサブスクリプション エンティティ パス SIGNALR_TOPIC_SignalREvents_1/Subscriptions/2c155757-123f-44ba-ace7-96a6b390234e のメッセージ受信の作成が正常に完了しました。SignalR.ScaleoutMessageBus 情報: 0 : ストリーム (1) - 状態が初期からオープンに変更されました SignalR.ServiceBusMessageBus 情報: 0 : 新しいトピック クライアント SIGNALR_TOPIC_SignalREvents_2 の作成が正常に完了しました。SignalR.Transports.TransportHeartBeat 情報: 0 :

SignalR.ServiceBusMessageBus Verbose: 0: Service Bus 経由で 37 バイトを受信中: {"H":"auctionHub","M":"Init","A":[1]} SignalR.ScaleoutMessageBus 情報: 0: OnReceived(4, 221, 1)

SignalR サービス バス構成コード (WebJob と Web サーバーで同じ)

髪の毛が残っていたら、引き裂いていたでしょう。私はこれを広範囲に検索しましたが、有用なものを見つけることができませんでした。任意のポインタをいただければ幸いです。

編集 >>

OnDisconnectedそしてOnReconnected手付かずです。

必要に応じて SignalR コンテキストを提供するために SimpleInjector を使用していますが、この実装は効果がありますか?

0 投票する
1 に答える
1250 参照

signalr - SIGNALR バックプレーン - グループにメッセージを送信するとどうなるか

SQL バックプレーンを使用するように SignalR を構成し、グループに送信する場合、SignalR はバックプレーンでグループに対して 1 つのメッセージを作成するか、グループ内のクライアント ID ごとに 1 つのメッセージを作成しますか。

SignalR の 2 つのインスタンスが必要ですが、クライアントはインスタンス間で異なる connectionId を持っているため、グループである可能性がある一意の識別子にメッセージを送信する必要があります。

誰でもこれに答えてもらえますか? ありがとう

0 投票する
1 に答える
325 参照

c# - スティッキー セッションを使用する場合、SignalR バックプレーンは必要ですか?

スティッキーセッションを使用するアプリケーション用に、マルチサーバーの負荷分散環境があります。個々のクライアントに更新を送信するための SignalR 実装を追加することを検討しています。私はバックプレーンを認識しているので、SignalR を少しいじりました。スティッキーセッションを使用しているので、認証後に単一のサーバーがユーザーリクエストを処理しているため、バックプレーンを実装する必要がないかどうか疑問に思っています。

0 投票する
2 に答える
1796 参照

c# - Azure Service Fabric サービス内で SignalR と Service Bus をセットアップする

既存の Cloud Service WorkerRole をステートレス サービスとして Service Fabric に移植しています。元のクラウド サービスは、SignalR と Service Bus (SignalR バックプレーンとして) を使用して、リッスンしているクライアントに通知を送信します。セットアップの一部を行う Startup クラスがあります。

WorkerRole の OnStart() メソッドで、次のように OWIN を開始します。

これ (つまり、SignalR サービス バス バックプレーンへの接続) は、Service Fabric 内のステートレス サービスに対してどのように行われますか?

0 投票する
2 に答える
1354 参照

.net - SignalR バックプレーンを使用した Redis クラスター

私たちのアプリケーションは SignalR を使用しています。高可用性のために、負荷分散された展開をサポートする必要があります。また、アプリのキャッシングにクラスター化された Redis を使用します。

SignalR バックプレーンと同じ Redis クラスターを使用してスケールアウトすることを考えています。

ただし、 GlobalHost.DependencyResolver.UseRedis() は、複数のサーバーを引数として渡すことをサポートしていません。

可能であれば、同じことを達成する方法を教えてください。

0 投票する
1 に答える
1404 参照

signalr - SQL サーバーを使用した Signalr スケールアウト

Signalr を使用してプッシュ通知を実装する必要があります。2 つの Web サーバー (つまり、運用サーバーとクラスターで構成されたバックアップ サーバー) があります。クライアントは、本番サーバーがダウンしている場合にのみバックアップ サーバーに接続されます。同期された本番データベースとバックアップ データベースがあります。本番 Web サーバーは本番データベースに接続され、バックアップ Web サーバーはバックアップ データベースに接続されます。このシナリオを SQL Server でスケールアウトする方法。