1. 程式人生 > >Linux下build和使用rabbitmq-c

Linux下build和使用rabbitmq-c

1) 按照這裡介紹的方法,先安裝CMake
2) 在這裡找到下載link,下載rabbitmq-c的包
3) 解壓,進入解壓後的目錄

4) mkdir build && cd build# 這一步是在rabbitmq-c的根目錄下建立一個build子目錄
5) cmake ..# 這一步是讓cmake根據../CMakeList.txt,即rabbitmq-c的根目錄下的CMakeList.txt建立Makefile檔案,Makefile檔案會被建立到build目錄中
6) cmake --build .# 這一步是真正的build rabbitmq-c庫的,注意,不要漏掉結尾的點 '.'

完成後,build目錄下會出現librabbitmq、examples 和 tests 子目錄。其中librabbitmq中包含生成的librabbitmq.so等檔案;examples中包含amqp_bind、amqp_consumer、amqp_exchange_declare、amqp_listen、amqp_listenq、amqp_producer、amqp_rpc_sendstring_client、amqp_sendstring 和 amqp_unbind 可執行檔案。

這裡有rabbitmq-c的example使用說明,和使用librabbitmq的簡單說明。

關於amqp_open_socket Connection refused的錯誤提示

原因在於,使用說明中提到這樣一句:

Arrange for a RabbitMQ or other AMQP server to be running on localhost at TCP port number 5672.

即,在執行example之前,要起Rabbitmq服務,監聽在 localhost的5672埠,然後下面的操作才能正常工作。否則,會遇到錯誤提示 “Opening socket: Connection refused

In one terminal, run

./examples/amqp_listen localhost 5672 amq.direct test

In another terminal,

./examples/amqp_sendstring localhost 5672 amq.direct test "hello world"

You should see output similar to the following in the listener's terminal window:

Result 1
Frame type 1, channel 1
Method AMQP_BASIC_DELIVER_METHOD
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:

事實上,./examples/amqp_listen localhost 5672 amq.direct test 並不是真正起一個rabbitmq的服務,並監聽在localhost:5672,而是模擬真正的rabbitmq server:如果在5672埠收到正確的資料,則列印相應的資訊。其實這個模擬的server可以不用起,./examples/amqp_sendstring localhost 5672 amq.direct test "hello world" 也可以成功往 localhost:5672 發資料。