#include #include #include #include #include #include #include auto Coroutine() -> boost::asio::awaitable { SPDLOG_INFO("Connecting client..."); try { auto client = co_await larra::xmpp::client::CreateClient>( larra::xmpp::PlainUserAccount{.jid = {.username = "test1", .server = "localhost"}, .password = "test1"}, {.useTls = larra::xmpp::client::Options::kNever}); co_await std::visit( [](auto& client) -> boost::asio::awaitable { co_await client.Send(larra::xmpp::presence::c2s::Available{}); }, client); } catch(const std::exception& err) { SPDLOG_ERROR("{}", err.what()); co_return; } SPDLOG_INFO("Done connecting client!"); } auto main() -> int { spdlog::set_level(spdlog::level::trace); boost::asio::io_context io_context; boost::asio::co_spawn(io_context, Coroutine(), boost::asio::detached); io_context.run(); }