Клиентское приложение будет регистрировать запросы на мониторинг событий на сервере. Обратный вызов клиента добавляется в словарь (и регулярно обновляется клиентом)
Сервер будет отслеживать частную очередь MSMQ на наличие событий, а когда происходит событие, на которое зарегистрирован подписчик, сервер вызывает клиентов.
Это зависит от запуска фонового потока, который может ждать в MSMQ и затем вызывать зарегистрированные клиентские приложения. Как лучше всего запустить этот фоновый поток? Моим первым шагом было просто запустить его в событии Application_Start файла global.asax. Это имеет ряд ловушек, как обсуждалось в ответе Криса Андерсона на этот вопрос SO Кроме того, это ловушка потока, задерживающегося на компьютере разработчика после того, как они прекращают отладку приложения.
Возможно, есть совершенно другой подход, который оправдан, такие предложения также приветствуются.