Правильно ли сбросить соединение в WebSocket :: Stream_base :: Декораторный обратный вызов?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Правильно ли сбросить соединение в WebSocket :: Stream_base :: Декораторный обратный вызов?

Сообщение Anonymous »

У меня есть сервер WebSocket, где я называю WebSocket :: Stream :: async_accept , чтобы выполнить рукопожатие с клиентом.

Код: Выделить всё

conn->get_websocket_stream().set_option(boost::beast::websocket::stream_base::decorator(
[this, self, conn](boost::beast::websocket::response_type& response)
{
// modify response

if (some_condition)
{
conn->close(); // is it OK?
}
});

conn->get_websocket_stream().async_accept(request, ...);
Внутри декоратора, если выполнено заданное условие, мне нужно прервать выполнение Async_accept , закрыв соединение с клиентом. I didn't find an answer to this question in the documentation
https://www.boost.org/doc/libs/1_81_0/l ... rator.html
UPDATE - это объект соединения, обычный сеанс Asio, основанный на shared_ptr .

Код: Выделить всё

get_websocket_stream()
возвращает websocket :: Stream

Код: Выделить всё

conn->close()
просто закрывает сокет (сокет, используемый websocket :: Stream )

Подробнее здесь: https://stackoverflow.com/questions/797 ... ator-callb
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»