Сбой соединения Websocket plus plus connect, когда сервер не работает - PullRequest
0 голосов
/ 10 октября 2018

Я реализовал клиент websocket ++ в x86, и он работает нормально, но в режиме arm arch, когда бы я ни звонил, происходит сбой, когда сервер или интернет недоступен, но хорошо работает, когда интернет или сервер доступны.

Кодздесь добавлен фрагмент соединения. Вызов соединения завершается сбоем con = m_EndPoint.connect (con);

CWebSocketEndpoint(CWebSocketPlusPlus* uopCWebSocketPlusPlus) : m_next_id(0)
    {
            muopCWebSocketPlusPlus = uopCWebSocketPlusPlus;
            m_EndPoint.clear_access_channels(websocketpp::log::alevel::all);
            m_EndPoint.clear_error_channels(websocketpp::log::elevel::all);

            m_EndPoint.init_asio();
            m_EndPoint.start_perpetual();
            //          mThread.reset(new websocketpp::lib::thread(&client::run, &m_EndPoint));
            mThread = websocketpp::lib::make_shared<websocketpp::lib::thread>(&client::run, &m_EndPoint);}


int connect(std::string const & uri)
        {
            websocketpp::lib::error_code ec;

            client::connection_ptr con = m_EndPoint.get_connection(uri, ec);

            if (ec)
            {
                std::cout << "> Connect initialization error: " << ec.message() << std::endl;
                return -1;
            }

            int new_id = m_next_id++;
            CWebSocketConnectionMetaData::ptr metadata_ptr(new CWebSocketConnectionMetaData(new_id, con->get_handle(), uri, muopCWebSocketPlusPlus));
            m_connection_list[new_id] = metadata_ptr;

            con->set_open_handler(websocketpp::lib::bind(
                    &CWebSocketConnectionMetaData::on_open,
                    metadata_ptr,
                    &m_EndPoint,
                    websocketpp::lib::placeholders::_1
            ));
            con->set_fail_handler(websocketpp::lib::bind(
                    &CWebSocketConnectionMetaData::on_fail,
                    metadata_ptr,
                    &m_EndPoint,
                    websocketpp::lib::placeholders::_1
            ));
            con->set_close_handler(websocketpp::lib::bind(
                    &CWebSocketConnectionMetaData::on_close,
                    metadata_ptr,
                    &m_EndPoint,
                    websocketpp::lib::placeholders::_1
            ));
            con->set_message_handler(websocketpp::lib::bind(
                    &CWebSocketConnectionMetaData::on_message,
                    metadata_ptr,
                    websocketpp::lib::placeholders::_1,
                    websocketpp::lib::placeholders::_2
            ));

            con = m_EndPoint.connect(con);
            return new_id;
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...