2015-12-10 4 views
0

Мне нужен совет по использованию SignalR по конкретной задаче.Советы по архитектуре SignalR

В частности, у меня есть устаревшее приложение ASP.NET, которое модернизируется на ходу, переписывая существующие модули или добавляя новые функции в виде клиентских модулей (html5/css/js) с бэкэдом на основе webapi.

мне нужно интегрировать SignalR для выполнения задач следующим образом:

  1. код на расслоение плотной веб-страницы делает AJAX запрос. Код на сервере может занять много времени, поэтому я не хочу ждать завершения создания ajax-кода. Например, отправьте электронное письмо с приложением нескольких отчетов SSRS, представленных в формате PDF. Я не хочу заставить пользователя ждать, пока все отчеты не будут отображаться (это может занять несколько десятков секунд). Таким образом, мой код просто вызывает ajax, но не использует обработчик для успеха или ошибки.
  2. В методе webapi, когда он успешно завершен, я хочу отправить сообщение SignalR клиенту с удачной статуей (и, возможно, дополнительной информацией)
  3. Если любая ошибка возникает в webapi, я хочу отправить сообщение SignalR клиенту с информацией об ошибке
  4. В веб-приложении на главной странице я хочу включить код SignalR, который будет инициализироваться при загрузке страницы, и будет получать уведомления, отправленные кодом сервера. Затем он обработает сообщения по мере необходимости (сообщите об ошибке, успехе и т. Д.).

Можете ли вы предоставить некоторые рекомендации и ссылку на код?

Спасибо

+1

То, что вы описываете, является стандартным вариантом использования для signalR. Я предлагаю вам пройти этот учебник http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr, и вы получите представление о том, как использовать signalR в своем приложении. –

+0

Я уже проверил это, но не нашел, как отправить сообщение от сервера к клиенту, например. как получить доступ и вызвать signalR-код из моего метода webapi для отправки данных клиенту. И как зарегистрировать signalR при запуске приложения. Мое приложение - устаревшее приложение, с global.asax AppStart, и я не понимаю, как это соответствует инициализации запуска owin – bzamfir

ответ

Смежные вопросы