У меня есть метод-концентратор signalR, который будет получать запросы от клиента. После получения запроса мне нужно связаться со сторонним API, который будет непрерывно отправлять ответы моему сервису, вызывая событие, к которому я прикрепил обработчики событий для ответа в методе-концентраторе, а обработчики событий являются частным методом класса-концентратора. Если концентраторы временные, я не смогу получить ответ, так как событие будет запущено после завершения выполнения метода концентратора. Но я получаю ответ. Я хотел знать, является ли это хорошим способом сделать это, или это могло бы привести к утечкам памяти или некоторой другой проблеме, если есть много клиентов. Я также хотел бы знать, каковы различные подходящие подходы для установки обработчика событий в методе концентратора. Я также открыт для подходов, в которых обработчики событий устанавливаются и реализуются вне метода хаба.
Я попытался реализовать обработчик событий в каком-то другом классе и создать объект для ссылки на него в методе Hub. Это также сработало. Я думаю, что объекты-концентраторы не удаляются, если какой-то объект ссылается на них.
public class Myhub: Hub {
public async setup(){
// setup params to call API
// responseEvent is called by API multiple times
responseEvent += Eventhandler;
// send the request.
// method is closed. The responseEvent will be triggered after this
// method is finished executing.
}
private Eventhandler(response){
// send response to the appropriate Client.
}
};