Boost Beast переподключить подключение к веб-сокету после закрытия - PullRequest
0 голосов
/ 27 июня 2018

Я использую 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 Ответ

0 голосов
/ 30 июня 2018

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

...