В чем преимущество WSDualHttpBinding в WCF? - PullRequest
10 голосов
/ 26 апреля 2010

Пока никто не может предложить никаких преимуществ использования двухканального по сравнению с системой опроса клиентов, за исключением немедленного уведомления, которое вы можете получить по двухканальному. Любой другой пункт говорит, что если вам не нужно немедленное уведомление, двойное связывание дает отрицательное значение - кто-то не согласен с этим?

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

Этот сценарий предназначен для типа уведомлений, когда служба должна уведомлять клиентов при возникновении события.

В частности, какие преимущества даст WSDualHttpBinding по сравнению с опросом? То есть: меньше сетевого трафика, быстрее для проектирования, проще в обслуживании, больше контроля ???

Насколько я понимаю, WSDualHttpBinding менее масштабируем, чем опрос клиентов, так зачем вообще его использовать? Редактировать: Как сказал Мэтт, критическое время может быть одной из причин для дуплексного связывания.

Вот что у меня есть:

WSDualHttpBinding

adv: может получить немедленный ответ без ожидания по таймеру опроса

dis: менее масштабируемо, чем WsHttpBinding

dis: менее дружественный к брандмауэру

dis: медленнее, чем WSHttpBinding

Я добавлю к этому, основываясь на комментариях, пожалуйста, дайте мне знать, если я что-то укажу неправильно.

спасибо за ваш вклад: -)

Ответы [ 2 ]

9 голосов
/ 26 апреля 2010

В этой ветке содержится огромное количество информации . По сути, у опроса есть недостаток, заключающийся в том, что ваш клиент обновлен только до последнего опроса, поэтому для получения критически важной информации вам необходимо увеличить частоту опроса. Каждый опрос занимает сетевые ресурсы и создает накладные расходы на клиенте. Такие решения, как длинный опрос и WSDualHttpBinding, являются обходными решениями для этой проблемы. Недостаток WSDualHttpBinding заключается в том, что клиент должен предоставлять конечную точку серверу (что создает проблемы в средах с межсетевым экраном). BOSH / XMPP или другая форма длинного опроса - другая альтернатива.

5 голосов
/ 21 мая 2011

WSDualHttpBinding был создан по причине. WCF предоставил поддержку «обратных вызовов» службы - методов на клиенте, которые были уведомлены при завершении выполнения службы. К сожалению, HTTP - будучи односторонним каналом - не допускает обратных вызовов (в отличие от этого, TCPBinding позволяет это, поскольку TCP является полнодуплексным каналом). Чтобы обойти однонаправленную природу HTTP, было изобретено DualHttpBinding - два одновременно открытых HTTP-соединения - одно для запроса на обслуживание и одно для обратного вызова. Вопрос не в масштабируемости, а в необходимости. Если вы хотите использовать обратные вызовы (и обратные вызовы хороши, особенно если ваша служба будет требовать много времени (долго работать)), WSDualHttpBinding может быть вашим лучшим вариантом. Опрос, возможно, является худшим по причинам, уже указанным - каждый опрос занимает ресурсы сети и т. Д.

...