2016-12-28 4 views
1

Я новичок в SignalR и есть несколько вопросов о правильном использовании его в определенных сценарияхРабота с SignalR, WebAPI и услуги

Для моего приложения я использую signalR сообщить клиенту статус операции они представили, пока они ждут окончательного ответа. Мой код структурирован как таковой:

  1. пользователя нажмите кнопку в интерфейсе
  2. соединение между клиентом и ступицей
  3. Вызов сделан на наш веб-Апи
  4. Веб Api делает вызов логики на нашем уровне обслуживания
  5. Уровень обслуживания обрабатывает данные через foreach.
  6. Для каждой итерации, хаб посылает сигнал, содержащий обновления данных о индикатор выполнения в пользовательском интерфейсе

Я был в состоянии достичь всего этого. Но мне нужно было установить новый тип с помощью GetHubContext, чтобы иметь возможность вызвать мой метод сигнала, потому что я не могу напрямую работать с объектом Hub. Выполнение этого не позволяет мне посылать сигнал конкретному пользователю, потому что он не известен уровню обслуживания, я могу передавать только всем.

Какую модель следует использовать для достижения этой цели? Для моей текущей настройки мне кажется, мне нужно настроить входящие соединения с группой, равной их connectionId, передать connectionId на различные уровни и отправить сигнал этой конкретной группе при необходимости. Это лучшая настройка?

ответ

1

Я бы сказал, что ответ «да», кажется, лучший вариант. Пожалуйста, прочитайте ответ на этот вопрос, я бы сказал, что это поможет вам с примером.

SignalR - Sending a message to a specific user using (IUserIdProvider) *NEW 2.0.0*

[Редактировать]

Ключевым моментом является отображение между ConnectionID и пользователями. В вашем случае это будет зависеть от реализации, я не могу вам сказать, лучший способ справиться с этим ...

Кроме того, очень хороший ответ там говорит о SendToUser тесты здесь:

https://github.com/SignalR/SignalR/blob/release/tests/Microsoft.AspNet.SignalR.FunctionalTests/Server/Hubs/HubFacts.cs

Это похоже на то, что вы можете использовать в своем решении. [изменить]

Надеюсь, это поможет.