Если мое клиентское соединение SignalR прерывается, я хочу, чтобы клиент попытался восстановить соединение. Это хороший образец для реализации этого? Я имею в виду обработку события Closed в соединении SignalR путем перезапуска соединения.
public class OnPremiseWebHubClient
{
private HubConnection _hubConnection;
private IHubProxy _hubProxy;
private OnPremiseWebHubClient() { }
static OnPremiseWebHubClient() { }
private static readonly OnPremiseWebHubClient _instance = new OnPremiseWebHubClient();
public static OnPremiseWebHubClient Instance { get { return _instance; } }
public async Task Start()
{
_hubConnection = new HubConnection("http://OnPremiseWeb/");
_hubProxy = _hubConnection.CreateHubProxy("OnPremiseHub");
// IS THIS A GOOD PATTERN FOR KEEPING THE CONNECTION ALIVE?
_hubConnection.Closed += async () =>
{
// reconnect if we close
await _hubConnection.Start();
};
await _hubConnection.Start();
}
}