XMPP库与Boost.ASIO一起工作

XMPP library working with Boost.ASIO

本文关键字:一起 工作 ASIO Boost 库与 XMPP      更新时间:2023-10-16

我有一个用Boost.ASIO编写的程序。我正在寻找一个可以与之一起使用的C++ XMPP 客户端库,即一个已经使用 Boost.ASIO 并且公开其内部io_service实例的库,或者我可以使用我自己现有的 io_service 实例初始化,然后只需在我的io_service上调用 run()。

显然 Swiften (https://swift.im/swiften.html) 在内部使用 Boost,但我找不到任何关于如何获取内部io_service的示例。

有什么指示吗?

根据一些源代码片段,Swiften 在内部使用 Boost,但不是 ASIO 的一部分。它使用诸如shared_ptrboost::bind,随机生成器等东西,但不使用boost::asio

据消息人士称,Swift::EventLoop具有类似io_service界面,但不使用它。

所以答案是:不,你不能从 Swiften 中提取io_service,因为它不使用 boost::asio

UPD:但是,你可以以异步方式在单独的线程中使用 Swiften,然后io_service::post到你自己的 eventloop,但需要编写我们自己的包装器、完成处理程序等来管理它。