在 Linux下RabbitMQ-C 安装说明 一文中,详细的介绍了 rabbitmq-c 环境的搭建,在最后的example,一个终端负责传送信息,一个终端负责进行监听接收信息。那么如何在两台主机之间完成这样的传送接收信息呢,是本文所要详细介绍的。
【前提条件】
两台主机需要在同一局域网内,ping的通;
Server端负责监听接收信息,Client端负责传送信息;
【补充一块】
在 Linux下RabbitMQ-C 安装说明 一文中,讲解了开启web监控,打开浏览器,http://localhost:15672,如下图所示:默认情况下,访问RabbitMQ服务的用户名和密码都是“guest”,这个账户有限制,默认只能通过本地网络(localhost)访问,远程网络访问受限,所以在实现生产和消费信息之前,需要另外添加一个用户,并设置相应的访问权限。
添加用户,有两种方法:一种是通过终端命令行方式,另外一种是通过web方式,下面进行一一说明:
a) 终端命令方式:
添加新用户,用户名为“admin”,密码为“admin”:
sudo rabbitmqctl add_user admin admin
在web界面下,Admin子界面中我们可以发现用户名 “admin”已经被创建;
为admin用户设置所有权限:
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
在web界面下,Admin子界面中我们可以发现用户名 “admin”的所有权限已经被设置:
将admin用户设置为管理员角色:
sudo rabbitmqctl set_uesr_tags admin administrator
web界面下,Admin子界面中我们可以发现用户名 “admin”的管理员角色已经被设置:
b) web方式:
点开 Add a user,添加用户名“root”,密码“root” 管理员权限的用户;
上述完成之后,在 All user 下 Name这一列会出现“root”,但是其没有权限,点击 root 进去设置权限,如下图所示:单击 Set permission,就可以了;
最终如下图所示:
添加用户完毕,此时我们通过另外一台主机进行web访问。访问方式http://IP:15672,如下:
到此Server端和Client端的配置就基本上没问题了,接下来就是通过代码去监听消息。
在 Linux下RabbitMQ-C 安装说明 一文中,最后我们对一个example 进行了测试,在这里。我们也使用这个example进行测试,一台主机进行发送信息,另外一台主机监听接收信息。
对exmple中的amqp_listen.c 和 amqp_sendstring.c 部分代码进行修改:
将
die_on_amqp_error(amqp_login(conn, "/", 0, 131072, 0, AMQP_SASL_METHOD_PLAIN,
"guest", "guest"),
"Logging in");
修改为:
die_on_amqp_error(amqp_login(conn, "/", 0, 131072, 0, AMQP_SASL_METHOD_PLAIN,
"admin", "admin"),
"Logging in");
重新编译,
10.56.6.35主机起监听接收信息:
./examples/amqp_listen 10.56.6.35 5672 amq.direct test
10.56.6.113主机起发送信息:
./examples/amqp_listen 10.56.6.35 5672 amq.direct test "From 10.56.6.113"
如下图所示:
10.56.6.35 如下图所示:
10.56.6.113 如下图所示:
完,