2014-12-13 2 views
1

Я разрабатываю приложение ASP.NET MVC 5, которое отображает текущие кадровые данные, и использует SignalR для уведомления подключенных клиентов, когда происходят кадровые изменения. Это отлично работает для событий в реальном времени («Мне нужно уйти с работы сейчас»), но теперь мне нужно обрабатывать запланированные события, когда в будущем произойдет кадровое изменение.Использование SignalR для уведомления клиентов о появлении запланированных событий

То есть, событие может быть запланировано на 3 часа 27 минут («Мне нужно оставить работу в 16:00») или даже через 3 месяца. Когда происходит событие, подключенные клиенты должны быть уведомлены, чтобы отобразить правильные кадровые данные конечным пользователям. Конечно, будущее может измениться, и решение должно будет учитывать, что запланированные события отменены или изменены.

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

+1

Что о создании на стороне сервера запланированное задание , Затем сервер может вызвать концентратор signalR, чтобы направить уведомление клиенту (-ам). Quartz.NET хорош для такого рода вещей – cordialgerm

+0

^Рекомендовать выше. Похоже, вы пытаетесь настроить расписание на своем веб-сервере, которого не должно быть. Используйте отдельный Task/Scheduler для выполнения этой работы и, возможно, используйте '[Authorize]' для методов-хабов, которые запускают события, чтобы убедиться, что только их может вызвать планировщик. клиенты смогут получать только события. – Madushan

ответ

0

Я хотел бы создать небольшой служба Windows, которая занимается планированием. Затем используйте Автобусное сигнализировать веб-сервер, например

http://ayende.com/blog/3752/rhino-service-bus

На веб-сервере можно использовать https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy для пересылки сообщений непосредственно клиентам

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