Как создать собственную привязку WCF, которая эффективно переворачивает связь? - PullRequest
1 голос
/ 03 февраля 2011

Сервер отправляет запросы агентам.Когда агенту есть что сказать, он отправляет ответы на сервер.Все ясно и просто.

Теперь я хочу отменить обмен данными между сервером и агентом.Фактически, агенты опрашивают сервер и получают ответ, если есть над чем работать.

Мне кажется, что все это должно быть заключено в пользовательскую привязку WCF, которая будет содержать по меньшей мере следующие элементы:

  • Ссылка на эффективную привязку WCF, используемую для опроса сервера на обращенном канале агента к серверу.
  • Интервал опроса

С точки зрения сервераКанал поддерживает только односторонние интерфейсы.Сервер будет использовать его в качестве любого одностороннего интерфейса - запустить и забыть.Настраиваемая привязка будет хранить детали запроса и предоставлять их правильному агенту, как только он опрашивает сервер.

У меня нет опыта написания пользовательских привязок WCF.Итак, мой вопрос к опытным людям там - имеет ли смысл реализовывать пользовательскую привязку, о которой я говорю?Если это так, мне бы очень хотелось получить несколько указателей.

Спасибо.

EDIT1:

Агент не является клиентом сервера.Текущая логика заключается в том, что Сервер инициирует связь с Агентом, что делает его клиентом Агента.Необходимость реверсирования канала связи не связана с функциональным изменением их ролей.Скорее это результат ограничений брандмауэра на Агенте - он может запретить любую входящую связь.Я хочу максимально сохранить логику на стороне сервера, то есть сервер продолжает инициировать связь, но под капотом находится агент, который постоянно опрашивает работу.

1 Ответ

1 голос
/ 04 февраля 2011

Я думаю, что вы ищете Pub / Sub Model здесь.Пожалуйста, проверьте следующую ссылку, это пример, http://tomasz.janczuk.org/2009/07/pubsub-sample-using-http-polling-duplex.html

HTH Amit

...