Сервер отправляет запросы агентам.Когда агенту есть что сказать, он отправляет ответы на сервер.Все ясно и просто.
Теперь я хочу отменить обмен данными между сервером и агентом.Фактически, агенты опрашивают сервер и получают ответ, если есть над чем работать.
Мне кажется, что все это должно быть заключено в пользовательскую привязку WCF, которая будет содержать по меньшей мере следующие элементы:
- Ссылка на эффективную привязку WCF, используемую для опроса сервера на обращенном канале агента к серверу.
- Интервал опроса
С точки зрения сервераКанал поддерживает только односторонние интерфейсы.Сервер будет использовать его в качестве любого одностороннего интерфейса - запустить и забыть.Настраиваемая привязка будет хранить детали запроса и предоставлять их правильному агенту, как только он опрашивает сервер.
У меня нет опыта написания пользовательских привязок WCF.Итак, мой вопрос к опытным людям там - имеет ли смысл реализовывать пользовательскую привязку, о которой я говорю?Если это так, мне бы очень хотелось получить несколько указателей.
Спасибо.
EDIT1:
Агент не является клиентом сервера.Текущая логика заключается в том, что Сервер инициирует связь с Агентом, что делает его клиентом Агента.Необходимость реверсирования канала связи не связана с функциональным изменением их ролей.Скорее это результат ограничений брандмауэра на Агенте - он может запретить любую входящую связь.Я хочу максимально сохранить логику на стороне сервера, то есть сервер продолжает инициировать связь, но под капотом находится агент, который постоянно опрашивает работу.