8

私は現在 SignalR 2.0.3 をプレイしており、Redis for Windows を利用する BackPlane でスケールアウトしています http://msopentech.com/blog/2013/04/22/redis-on-windows-stable-and-reliable/

VS に適切な SignalR.Redis パッケージを統合しました。

スタートアップに次の変更を加えました。

   GlobalHost.DependencyResolver.UseRedis(
        server: "localhost",
        port: 6379,
        password: string.Empty,
        eventKey: "BroadcasterExample"
        );
    app.MapSignalR(hubConfiguration);

それはうまく構築されます。私のクライアントは正常に接続しているようです。クライアントとサーバーの間で通知を送信できます。また、その逆も可能です。

Redis クライアントから、次のように入力できます。

get BroadcasterExample
which returns: "3"

うまくいっていると思いますが...

いくつかの質問: 1)それが実際に機能していることをどのように確認できますか?

2) Redis サーバー (ただし Redis クライアント) で何を調べることができますか?

3)どのデータ構造 (キーと値のペア、リスト、ハッシュ、セット) に何が格納されていますか?

何が起こっているのか、もう少し詳しく見てみたいと思います。http://redis.io/commandsのコマンドを見てきまし た。実際に何が起こっているのかをマッピングするのに役立つものは何もありません。

誰かがここで私を正しい方向に向けることができますか?

ありがとう、ジョンB

4

2 に答える 2

5

1) 「get BroadcasterExample」を実行して「3」が返されたときに動作していることは既に確認されていると思います。BroadcasterExample は、SignalR がメッセージを送信するチャネルの名前であり、3 は処理されたメッセージの数を表していると思います。SignalR でより多くのメッセージを送信すると、その数が増加することがわかります。

2) 物事が機能していることを確認する良い方法は、redis クライアントで BroadcasterExample チャネルにサブスクライブし、メッセージが送信されるのを監視することです。クライアントから、次を実行します。

subscribe BroadcasterExample

3) SignalR は、おそらくその 1 つのキー、「BroadcasterExample」キーを格納するだけです。SignalR は実際には Redis のパブリッシュ/サブスクライブ機能を使用しているだけで、データを保存していません。

于 2014-05-30T17:19:33.280 に答える
0

jaggedaz からの回答には有用な情報があります。また、IIS Express を使用して、2 つの異なるポートでアプリケーションを 2 回ホストすることにより、異なる種類のテストを非常に迅速に実行できることも付け加えておきます。次に、2 つのブラウザ ウィンドウをこれら 2 つの異なるインスタンスに接続し、メッセージの交換 (All へのブロードキャストなど) を開始すると、バックプレーンが実際に動作している場合にのみ可能になる、両方のクライアント間でメッセージが流れることがわかります。

于 2014-05-30T21:30:55.743 に答える