2017-05-09 18 views
0

Azureサービスバスを使用するようにSignalRを設定するときは、何か不足しているはずです。私は3つの定数インスタンス(現在)を実行するために私のApp Service(API - Web API 2)のセットアップを持っています。起動時に、APIはService Bus接続文字列を使い、適切なトピック接頭辞を設定します。Azureサービスバス経由のSignalR

フロントエンドでは、SignalRはAPIに接続できますが、メッセージはクライアントによって受信されることがあります。私の前提は、クライアントは最初に接続したサーバーからのメッセージしか受信しないということです。これは、私がSignalRがサービスバスを正しく使用していないと信じさせています。 Azure経由でサービスバスを見ると、トピックが作成されているのがわかりますが、いずれのトピックにもメッセージはありません(サブスクリプションも表示されます)。

私が知る限り、クライアントとサーバーの間のSignalRは、サービスバスを経由する代わりに直接接続を使用しています。 クライアントがSignalR接続用のAPIのURLを使用していることに注意してください。 - これは正しいですか?

上記のコードは、インスタンスごとに実行SignalRConfig(アプリの起動中)

var serviceBusConnectionString = configHelper.SignalR.ServiceBusConnectionString; 
var serviceBusTopicPrefix = configHelper.SignalR.TopicPrefix; 

Logger.Info("SignalR: configuring"); 

// Use the service bus, if specified. 
if (serviceBusConnectionString != null && serviceBusTopicPrefix != null) { 
    Logger.Info("SignalR: using service bus"); 

    GlobalHost.DependencyResolver.UseServiceBus(serviceBusConnectionString, serviceBusTopicPrefix); 
} 

app.MapSignalR(); 

これが正しいかどう、私は考えています。多分私は複数のトピックを見ています。 - signalr_topic_my-app-staging_0私はこの(旧式)チュートリアルに従うことを試みてきました。5.

0〜注:https://docs.microsoft.com/en-us/aspnet/signalr/overview/performance/scaleout-with-windows-azure-service-bus

+0

あなたはどのナゲットパッケージを使用していますか?チュートリアルのナゲットパッケージは推奨されなくなりました。 Microsoft.AspNet.SignalR.ServiceBusを使用する必要があります。 – Thomas

+0

最新の 'Microsoft。*。SignalR *'は、必要に応じて詳細を与えることができます。私は自分のPCの前に戻ってきます。 –

答えて

0

Your'reコードは正しいようで、それは各インスタンスに対して実行する必要があります。

サービスバスには、signalr_topic_ {TOPIC_PREFIX} _0〜signalr_topic_ {TOPIC_PREFIX} _5という6つのトピックがあります。

各インスタンスは同じトピックプレフィックス名を使用していますか?彼らが異なるトピック名を使用している場合、これはあなたが見ている動作を説明するでしょう。

+0

インスタンスが自動縮尺/完全コピーであるのと同じトピック名を使用しています。クライアントで正しいURLを使用していますか? –

関連する問題