Нет, не существует простого или элегантного способа обнаружения отключения клиента.Было бы неплохо, если бы, когда клиент выключился или вышел из строя, служба получила событие «ClientTeridity».Однако такое поведение просто не соответствует архитектуре, основанной на сообщениях.
Не очень элегантное решение состоит в том, чтобы периодически пинговать клиента с помощью метода обратного вызова и посмотреть, истекает ли время ожидания этого вызова.
В качестве альтернативы, если вы используете экземпляры PerSession, вы можете установить inactivityTimeout на короткое значение (скажем, одну минуту в отличие от значения по умолчанию 10), а на стороне клиента использовать таймер, чтобы периодически вызывать пустойметод на сервере.
См. этот вопрос для аналогичного обсуждения.