Сегодня в проекты "echo_server" и "qt_echo_server" (т.к. у них общая кодовая база касаемо самого сервера) введена возможность указывать для сессий (на стороне сервера, конечно) таймаут чтения, по истечении которого сессия считается неактивной (по вине клиента - мол "упал он там что ли?").
При этом оставлена возможность не задавать величину подобного таймаута. В этом случае таймаут не будет использоваться вообще (это похоже на таймаут, равный +∞).
Отличительная возможность реализации таймаута - это использование custom memory allocation для обработчика, используемого совместно с deadline_timer-ом. Эта "фишка" потребовала особого дизайна (правда, не столь уж и "мудреного") и показала то, о чем не сказано ни в одном примере Boost.Asio. - см. комментарии - там есть ссылка на пост автора Asio, где очень подробно описано более простое (и понятное) решение. Кстати, это решение уже есть в
офиц. документации Asio.
Код пока только в SVN-репозитории (trunk).
После проверки всеми компиляторами появится dev-release.
Updated 14.09.2011: см.
улучшенный/исправленный вариант.