Существует много статей, показывающих, как сделать свою собственную расширенную обработку соединений с помощью SignalR, например this blog post about "Mapping ASP.NET SignalR Connections to Real Application Users".Определение устаревших соединений в сигнале
Все эти решения опираются на события OnDisconnect:
public override Task OnDisconnected()
{
SignalRConnectionManager.RemoveConnection(Context.ConnectionId);
return base.OnDisconnected();
}
Это работает до тех пор, как вы можете рассчитывать на OnDisconnected события. Если ваше приложение выйдет из строя/перезагрузится или перезагрузится сервер, вы не получите событие OnDisconnected для каждого соединения.
Вопрос: У меня есть соединение в моей базе данных. Я знаю, что многие из этих связей устарели. Есть ли возможность в SignalR узнать, является ли соединение устаревшим? Я попробовал
Clients.Client[StaleConnectionId]
ожидающий null или исключение в случае неправильного идентификатора соединения.
Любые предложения?
ОК, я также внедрил некоторые меры предосторожности. Я надеялся найти более чистый раствор ... – Sparhawk
@N. Тейлор Маллен, не могли бы вы сообщить мне, где именно находится логика? – soleiljy
Какую логику вы имеете в виду? Логика в ShootR? –