使用 Boost.ASIO 的 XMPP 库
XMPP library working with Boost.ASIO
我有一个使用 Boost.ASIO 编写的程序。我正在寻找一个可以与它一起使用的 C++ XMPP 客户端库,也就是说,一个已经使用 Boost.ASIO 并且公开其内部 io_service 实例,或者我可以用我的初始化的库拥有现有的 io_service 实例,然后只需在我的 io_service.
上调用 运行()
显然 Swiften (https://swift.im/swiften.html) 在内部使用了 Boost,但我找不到任何关于如何获取内部 io_service.
的示例
有指示吗?
根据source code的一些片段,Swiften在内部使用了Boost,但没有使用其中的ASIO部分。它使用 shared_ptr
、boost::bind
、随机生成器等,但不使用 boost::asio
.
据消息来源称,Swift::EventLoop
有类似 io_service
的界面,但不会使用它。
所以答案是:不,你不能从 Swiften 中提取 io_service
,因为它不使用 boost::asio.
更新:但是,您可以在单独的线程中以异步方式使用 Swiften,然后对您自己的事件循环执行 io_service::post
,但需要编写我们自己的包装器、完成处理程序等来管理它。
我有一个使用 Boost.ASIO 编写的程序。我正在寻找一个可以与它一起使用的 C++ XMPP 客户端库,也就是说,一个已经使用 Boost.ASIO 并且公开其内部 io_service 实例,或者我可以用我的初始化的库拥有现有的 io_service 实例,然后只需在我的 io_service.
上调用 运行()显然 Swiften (https://swift.im/swiften.html) 在内部使用了 Boost,但我找不到任何关于如何获取内部 io_service.
的示例有指示吗?
根据source code的一些片段,Swiften在内部使用了Boost,但没有使用其中的ASIO部分。它使用 shared_ptr
、boost::bind
、随机生成器等,但不使用 boost::asio
.
据消息来源称,Swift::EventLoop
有类似 io_service
的界面,但不会使用它。
所以答案是:不,你不能从 Swiften 中提取 io_service
,因为它不使用 boost::asio.
更新:但是,您可以在单独的线程中以异步方式使用 Swiften,然后对您自己的事件循环执行 io_service::post
,但需要编写我们自己的包装器、完成处理程序等来管理它。