2015-04-20 1 views
0

Используя SignalR, можно ли обновлять клиентов веб-сайта из моей службы WCF, если служба не используется этими клиентами напрямую?SignalR в службе WCF для обновления клиентов веб-сайта

У меня есть настольное приложение в .NET, которое имеет службу WCF, использующую внутренне с использованием протокола net.TCP. Это приложение меняет одно из полей статуса в таблице базы данных в зависимости от определенных действий пользователя. Я хочу сообщить об этом изменения конечным пользователям, которые обращаются к другому веб-сайту, размещенному на том же веб-сервере.

Я пробовал один образец SignalR, где уведомление работает нормально, если оно отправлено с хоста одного и того же сайта своему собственному клиенту (образец биржевого тикера). Но в моем случае сообщение должно перейти от службы WCF к клиенту веб-сайта.

ответ

0

IMO вы должны сделать промежуточный прыжок, например, если ваш сайт разоблачает конечную точку (вы выбираете технологию), где вы можете отправить сообщение всякий раз, когда у вас есть изменение для уведомления. Ваш WCF-сервис будет размещаться там, где есть изменения, и веб-приложение обрабатывает сообщение, передавая информацию целевым клиентам (может быть все или может быть только некоторые из них, которые вы фильтруете с некоторой логикой после сообщения). Я использую этот шаблон довольно часто, реализуя его с помощью HTTP POST. У вас не возникло бы проблем с внедрением инфраструктуры SignalR в веб-приложении, к которому уже подключены ваши клиенты.

+0

На самом деле я хочу уведомлять о любых изменениях, внесенных моим приложением. Это должно быть в реальном времени. Могу ли я использовать эту технику? –

+0

Несомненно. Приложение вашего рабочего стола запускает изменение, которое обрабатывает сервер WCF. WCF в этом контексте может опубликовать сообщение в веб-приложении, в котором говорится, что изменилось, и веб-приложение будет транслировать это для пользователей. Вы также можете отправить уведомление в веб-приложение прямо из приложения для настольных компьютеров, если хотите. Это основной принцип, тогда вы, конечно, можете добавить любую инфраструктуру очереди/резервирования в цикле, если вам нужно. – Wasp