Boost Beast переподключить соединение через веб-сокет после закрытия

Я использую Boost:: Beast для создания подключения к веб-сокету, и пока он работает нормально. Но я не могу понять, если я должен заменить переменную websocket:: stream после отключения.

т.е. у меня есть переменная:

boost::beast::websocket::stream<boost::asio::ssl::stream<boost::asio::ip::tcp::socket>> _ws

После того, как асинхронное разъединение инициируется и завершается:

bool WebsocketConnection::startDisconnectSequence()
{
    _ws.async_close(
        boost::beast::websocket::close_code::normal,
        boost::asio::bind_executor(
            _strand,
            std::bind(
                &WebsocketConnection::onClose,
                this,
                std::placeholders::_1)));

    return true;
}

Если я хочу перезапустить снова, я должен заменить переменную _ws

    boost::asio::async_connect(
        _ws.next_layer().next_layer(),
        results.begin(),
        results.end(),
        boost::asio::bind_executor(
            _strand,
            std::bind(
                &ASIOConnectionBase::onConnect,
                this,
                std::placeholders::_1)));
}

1 ответ

Это должно работать, хотя, если честно, я не проверял это. Что происходит, когда вы используете его повторно?

Другие вопросы по тегам