WCF Full Duplex Handle Отключение клиента - PullRequest
4 голосов
/ 28 июля 2010

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

1 Ответ

2 голосов
/ 28 июля 2010

Нет, не существует простого или элегантного способа обнаружения отключения клиента.Было бы неплохо, если бы, когда клиент выключился или вышел из строя, служба получила событие «ClientTeridity».Однако такое поведение просто не соответствует архитектуре, основанной на сообщениях.

Не очень элегантное решение состоит в том, чтобы периодически пинговать клиента с помощью метода обратного вызова и посмотреть, истекает ли время ожидания этого вызова.

В качестве альтернативы, если вы используете экземпляры PerSession, вы можете установить inactivityTimeout на короткое значение (скажем, одну минуту в отличие от значения по умолчанию 10), а на стороне клиента использовать таймер, чтобы периодически вызывать пустойметод на сервере.

См. этот вопрос для аналогичного обсуждения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...