假設我們有2個Redis服務器背板,一個爲主設備,另一個爲從設備。SignalR - 在不同的Redis背板之間切換
每個Web應用程序,以便將內容推送到連接的客戶端,因爲它發生,爲了將它們連接到背板使用SignalR我正在使用的Application_Start
GlobalHost.DependencyResolver.UseRedis(host, port, "", new[] {"signalr.key"});
RouteTable.Routes.MapHubs();
現在的情況下,主Redis的背板失敗,我想將Slave Redis服務器升級爲Master,並將所有現有連接從Web服務器切換到新的Master Redis服務器。
爲了促進從服務器到主我使用下面的代碼
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);
}
}
,似乎做的工作。
請問我可以通知我的網絡應用程序背板已更改如何連接到新的,以維持連接的客戶端之間的通信?
這也可以切換主控,但我再也找不到一種方法告知SignalR背板有變化。 也許我需要「重新映射」集線器或其他東西,但無論我嘗試似乎沒有工作。 – ppolyzos 2013-02-25 14:41:44