Я реализовал клиент 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;
}
}