Обнаружение разъединения клиента с HttpListener - PullRequest
9 голосов
/ 25 августа 2009

У меня есть приложение, которое использует HttpListener, мне нужно знать, когда клиент отключился, сейчас у меня есть весь мой код внутри блока try / catch, что довольно уродливо и не очень хорошая практика.

Как узнать, отключился ли клиент?

спасибо!

1 Ответ

9 голосов
/ 25 августа 2009

Краткий ответ: вы не можете. Если клиент перестает говорить, базовый сокет может оставаться открытым и никогда не закроется; это будет просто тайм-аут. Способ обнаружить это состоит в том, чтобы попытаться выполнить действие с этим соединением, и если соединение больше не является действительным, оно выдаст какое-то исключение в зависимости от того, что произошло. Если вы используете HttpListener асинхронно, он может немного очистить ваш код в терминах try / catch, но, к сожалению, это то, что вы застряли. Нет события, которое сработает, если клиент отключится.

...