这是一个用于 RabbitMQ 代理 v2.0+ 的 C 语言 AMQP 客户端库。
关于库的公告定期在 rabbitmq-users 邮件列表上发布
rabbitmq-c 的最新稳定版可以在以下位置找到:
0.5.0+ 版本的 API 文档可以在此处查看:
http://alanxz.github.io/rabbitmq-c/docs/0.5.0/
下载并解压缩源代码到目录后,在大多数系统上构建 rabbitmq-c 的命令如下
mkdir build && cd build
cmake ..
cmake --build [--config Release] .
在多配置生成器中使用 --config Release 标志,例如 Visual Studio 或 XCode。
还可以将 CMake GUI 工具指向源树根目录下的 CMakeLists.txt,生成构建项目或 IDE 工作区
安装库并可选地指定前缀可以这样做
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
cmake --build . [--config Release] --target install
有关 CMake 的更多信息,可以在其 FAQ 上找到 (http://www.cmake.org/Wiki/CMake_FAQ)
CMake 可以传递给其他有趣的标志
BUILD_EXAMPLES=ON/OFF
切换构建示例。默认为 ON。BUILD_SHARED_LIBS=ON/OFF
切换将 rabbitmq-c 构建为共享库。默认为 ON。BUILD_STATIC_LIBS=ON/OFF
切换将 rabbitmq-c 构建为静态库。默认为 OFF。BUILD_TESTS=ON/OFF
切换构建测试代码。默认为 ON。BUILD_TOOLS=ON/OFF
切换构建命令行工具。默认情况下,如果构建系统可以找到 POpt 标头和库,则为 ON。BUILD_TOOLS_DOCS=ON/OFF
控制构建命令行工具的手册页。默认情况下,如果 BUILD_TOOLS 为 ON 且构建系统可以找到 XmlTo 工具,则此选项为 ON。ENABLE_SSL_SUPPORT=ON/OFF
控制是否在 rabbitmq-c 中构建 SSL 支持。默认情况下,如果可以找到 OpenSSL 头文件和库,则此选项为 ON。ENABLE_THREAD_SAFETY=ON/OFF
控制 OpenSSL 的线程安全性。默认情况下此选项为 ON。BUILD_API_DOCS=ON/OFF
- 控制是否构建 Doxygen API 文档,默认情况下此选项为 OFF为了兼容性,项目维护了一个基于 GNU autotools 的构建系统。所需的工具包括 autoconf v2.59+、automake v1.9+、libtool v2.2+ 和 pkg-config。
然后按照标准的 autotools 构建过程构建 rabbitmq-c。
autoreconf -i
./configure
make
make install
确保 RabbitMQ 或其他 AMQP 服务器在 localhost
上以 TCP 端口号 5672 运行。
在一个终端中,运行
./examples/amqp_listen localhost 5672 amq.direct test
在另一个终端中,
./examples/amqp_sendstring localhost 5672 amq.direct test "hello world"
在监听器的终端窗口中应看到类似以下输出的内容
Delivery 1, exchange amq.direct routingkey test
Content-type: text/plain
----
00000000: 68 65 6C 6C 6F 20 77 6F : 72 6C 64 hello world
0000000B:
librabbitmq
编写应用程序请参阅 examples
目录,其中包含使用 librabbitmq
库的简短示例。
使用 librabbitmq
,您不能在线程之间共享套接字、amqp_connection_state_t
或通道。librabbitmq
库是在考虑事件驱动、单线程应用程序的情况下构建的,尚未满足任何 pthread
应用程序的要求。
因此,您的应用程序应为每个线程打开一个 AMQP 连接(和相关套接字)。如果您的程序需要从多个线程访问 AMQP 连接或其任何通道,则完全负责设计和实现适当的锁定方案。拥有仅对需要 AMQP 服务的每个线程可用的连接通常会简单得多。