Как обнаружить разрыв в websockt с помощью boost :: beast?

Я знаю, что могу использовать код ошибки в async_write, async_read проверить отключение.

Тем не менее, в моей ситуации, после получения чего-либо, я не могу написать немедленно (или, возможно, никогда не произойдет обратная запись).

Во время между чтением и письмом, как я могу проверить
исключение при отключении клиента?

3

Решение

Я знаю, что могу использовать код ошибки в async_write, async_read, чтобы проверить отключение.

На самом деле только async_read сообщит вам, если другой конец изящно закрыл соединение.

Как я могу проверить исключение при отключении клиента во время между чтением и записью?

Ты не можешь На самом деле, даже не всегда возможно узнать, закрыл ли другой конец соединение, даже если вы звоните async_read, Вам нужно использовать таймер для тайм-аута соединения, если какое-то время не было никаких действий. Вы можете использовать функцию ping потока websocket, если слишком много времени проходит без активности. Это продемонстрировано на передовых серверных примерах.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]