Динамическая регистрация общих маршрутов Signalr Hub - PullRequest
0 голосов
/ 26 июня 2018

У меня есть архитектура с несколькими веб-сокетами, в которой мои хабы поддерживают мою службу отдыха.Событие выбрасывается из моих грубых методов.Мои сервисы регистрируются динамически, мой запуск выглядит примерно так:

var messageHubConfig = new DynamicHubServicConfiguration<Message, MessageDTO>();

//Registers service with a hub
restConfiguration.RegisterRestService(typeof(IMessageDTOService), 
                                         typeof(MessageDTOService), 
                                         messageHubConfig);

Я хотел бы зарегистрировать общие маршруты хабов одновременно, когда я регистрирую свои сервисы на основе используемого общего параметра.В настоящее время я вручную регистрирую маршруты следующим образом:

app.UseSignalR(routes =>
{
    routes.MapHub<CRUDServiceHubBase<MessageDTO>>("/messages");
});

Я хотел бы зарегистрировать соглашения для своих динамически зарегистрированных концентраторов, единственный способ, которым я могу придумать, как это сделать в настоящее время, будет

//this is pseudo coded
public void RegisterServiceHubConvention(IServicesProvder services, IApplicationBuilder app)
{
     //Get all the services
     var crudServices = services.GetServices(typeof(CRUDServiceHubBase<>))
     var serviceMap = MapGenericParameterToHubType(crudServices);
     var hubMapAction = BuildHubRoutesActionFromParameterTypeName(serviceMap);
    hubMapAction(app);
}

Почему сигнализатор не настроен с использованием сервисов?

Я бы предпочел не создавать своего поставщика услуг в AppServices или вручную писать соглашения таким образом.Существует ли более удобный подход для создания маршрутов-концентраторов?

...