Обратные вызовы WCF и сетевой трафик

Мне нравится использовать обратные вызовы WCF, когда я могу, потому что для меня это лучше, чем клиент, который должен опрашивать сервер, и его более реальное время, чем опрос. Вопрос, который у меня есть, заключается в том, что когда я подписываюсь на событие службы WCF, есть ли какое-либо сердцебиение, которое поддерживает соединение между клиентом и сервером. Я начинаю думать, что это не так, потому что, когда сервер уходит, подписка теряется, и клиент не выдает исключение (может быть, исключение проглочено средой выполнения WCF). То же самое верно и для сервера, когда клиент уходит, а сервер пытается вызвать обратный вызов, и возникает исключение. Есть предположения?

Спасибо


wcf
person Darren C    schedule 29.10.2008    source источник


Ответы (2)


По этой link< можно найти краткое описание контракта Duplex (обратные вызовы WCF). /а>. Дуплексный контракт, по сути, представляет собой два односторонних канала, и в нем нет подразумеваемой корреляции сообщений. Вы правы, здесь не задействованы сообщения «heartbeat», только обычный трафик подтверждения связи wsHTTP возникает при выполнении дуплексного вызова.

Я запустил сниффер HTTP-трафика под названием Fiddler2 (неподдерживаемый инструмент Microsoft), чтобы проверить сессионный трафик. Не наблюдалось никаких скрытых HTTP-сообщений «пульса», происходящих во время и после вызовов службы. Я оставил клиент работать на некоторое время. Хороший вопрос, заставил немного покопаться.

person Sixto Saez    schedule 04.11.2008

Я пошел дальше и создал повторяющееся сердцебиение для подписанных клиентов (по сути, вызов функции, которую они размещают).

Я запускал это в течение нескольких часов, и это работает, это помогает обеспечить соединение.

person Mark W    schedule 15.06.2011