2つのRedis Server Backplane、つまりMasterとSlaveの2つがあるとします。SignalR - 異なるRedisバックプレーン間の切り替え
マスターRedisのバックプレーンに障害が発生した場合にはそれが起こると、私は今のApplication_Start
GlobalHost.DependencyResolver.UseRedis(host, port, "", new[] {"signalr.key"});
RouteTable.Routes.MapHubs();
に使用していますバックプレーンにそれらを接続するためにように、各Webアプリケーションは、接続されたクライアントにコンテンツをプッシュするために、SignalRを使用しています私は、スレーブ・レディス・サーバーをマスターに昇格させ、既存のすべての接続をウェブ・サーバーから新しいマスター・レディス・サーバーに切り替えたいと考えています。
マスターにスレーブサーバを促進するために、私は仕事をしているようだ次のコード
using (var conn = new RedisConnection(host, port, allowAdmin: true))
{
if (conn.ServerType != ServerType.Master)
{
conn.Open();
var makeMaster = conn.Server.MakeMaster();
var info = conn.Wait(conn.GetInfo());
conn.Wait(makeMaster);
}
}
を使用しています。
接続されたクライアント間の通信を維持するために、バックプレーンが新しいものに接続する方法を変更したことをWebアプリケーションに知らせる方法を教えてください。
これはMasterを切り替えるためにも機能しますが、SignalRにバックプレーンに変更があったことを知らせる方法が見つけられません。 ハブなどを「再マップ」する必要があるかもしれませんが、試したものは動作していないようです。 – ppolyzos