У меня есть служба .Net, размещенная на сервере, и клиенты .Net, подключающиеся к этому серверу через Интернет.
Я хочу реализовать модель подписки на публикацию, когда клиенты могут подписываться на события в службе иотправлять им данные по мере их поступления.Альтернативой может быть то, что клиенты опрашивают сервер на наличие данных, однако это, вероятно, будет слишком медленным для того, что требуется.Отсюда необходимость в типе связи «публикация / подписка».
Я понимаю, что привязка WCF WSDualHttpBinding делает это возможным, однако имеет свои недостатки.По словам автора "Programming WCF Services" Джувала Лоуи,
... WSDualHttpBinding в основном непригоден, поскольку практически невозможно туннелировать через различные коммуникационные барьеры, отделяющие сервис от клиента, и необходимостьнайти конкретный веб-сервер делает это непрактичным.
Я истолковал это как означающее (пожалуйста, исправьте меня, если я ошибаюсь), что для работы с WSDualHttpBinding клиенты должны открытьпорт на их компьютерах (вместе с любой необходимой конфигурацией маршрутизатора), через который сервер может осуществлять обратный вызов.В этом случае использование WSDualHttpBinding не будет для меня вариантом.Использование Windows Azure также не будет возможным.
Итак, суть моего вопроса в том, как мне достичь типа публикации / подписки / обратного вызова через Интернет, без необходимости открывать порты на клиенте.машина?Открытые стандарты в порядке, но не нужны, так как клиент и сервер оба .Net, Windows Azure не вариант.