查看完整版本: [-- Qt使用 消息队列框架 RabbitMQ --]

QTCN开发网 -> Qt代码秀 -> Qt使用 消息队列框架 RabbitMQ [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

robinsonsir 2017-08-28 23:17

Qt使用 消息队列框架 RabbitMQ

### RabbitMQ简介
  MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。RabbitMQ简单理解,可以将它比喻为邮局,人们给邮局投递信件,邮局将信件派送给收件人。
  
具体工作原理大家参考RabbitMQ官网:
http://www.rabbitmq.com/


### Qt环境
(1),Qt5.3.1,系统win7  
(2),RabbitMQ server(官网下载安装:http://www.rabbitmq.com/download.html)


本文实现的为RabbitMQ 客户端,首先需要自行安装RabbitMQ server。


此客户端使用的RabbitMQ的Routing模式(type=direct),参考官网:
http://www.rabbitmq.com/getstarted.html

[attachment=17762]


程序截图:
[attachment=17761]

说明:
(1),serverIP 为RabbitMQ server 的ip, port默认为5672  
(2),connect之后 两个客户端就可以互发信息了。

另外注意两个客户端的bindingkey与routingkey 设置:
[attachment=17764]

RabbitMQ在15672端口上有个后台管理网页,默认登录名称与密码都为guest,在这里可已查看客户端与RabbitMQ server的连接情况。

[attachment=17763]

怎么启动server 官网有这么句话:Then just run the installer, rabbitmq-server-3.6.11.exe. It will set RabbitMQ up and running as a service, with a default configuration.


安装完毕,应该是会自动启动RabbitMQ server服务的。

参考:http://www.rabbitmq.com/install-windows.html

本文源代码下载:https://github.com/RobinsonSir/QtRabbitMQ/wiki

CSDN: http://blog.csdn.net/zbc415766331/article/details/77659204


qamqp项目源码地址:https://github.com/RobinsonSir/qamqp







liuchangyin 2017-08-29 12:30

liruigood 2017-08-29 12:41
楼主,你好,我在我的电脑上安装了rabbitMQ要如何配置和启动它呢?因为我同时运行了两个客户端,他们连接后并不能互相收到信息,应该是没有连接成功。
[attachment=17758]

robinsonsir 2017-08-29 13:42
liruigood:
楼主,你好,我在我的电脑上安装了rabbitMQ要如何配置和启动它呢?因为我同时运行了两个客户端,他们连接后并不能互相收到信息,应该是没有连接成功。
[图片]


[attachment=17759]


怎么启动server 官网有这么句话:Then just run the installer, rabbitmq-server-3.6.11.exe. It will set RabbitMQ up and running as a service, with a default configuration.


安装完毕,应该是会自动启动RabbitMQ server服务的。

RabbitMQ在15672端口上有个后台管理网页,默认登录名称与密码都为guest,在这里可已查看客户端与RabbitMQ server的连接情况。

参考:http://www.rabbitmq.com/install-windows.html

另外注意两个客户端的bindingkey与routingkey 设置:
[attachment=17760]

liruigood 2017-08-29 15:55
谢谢楼主,我已经能正常访问web端了,原因是安装完rabbitmq后,没有在cmd里面安装web管理的插件。
[attachment=17768]
参照这个帖子http://blog.csdn.net/seven_coder/article/details/50946562 配置就好了。
但是启动qt程序还是不能连接成功,不知道是什么原因呢?
[attachment=17767]



robinsonsir 2017-08-29 16:21
liruigood:谢谢楼主,我已经能正常访问web端了,原因是安装完rabbitmq后,没有在cmd里面安装web管理的插件。
[图片]
参照这个帖子http://blog.csdn.net/seven_coder/article/details/50946562 配置就好了。
但是启动qt程序还是不能连接成功,不知道是什么原因呢?
[attachment=1 .. (2017-08-29 15:55) 

你是在别的程序调用RabbitMQClient 吗?建议你单独运行一下RabbitMQClient试一下,在ReleaseFiles文件夹可以直接运行。

liruigood 2017-08-29 16:32
我是打开给的源码在Qt Creator里运行的,你给的ReleaseFile因为缺少平台动态库的的原因,不能直接运行。

robinsonsir 2017-08-29 16:40
liruigood:我是打开给的源码在Qt Creator里运行的,你给的ReleaseFile因为缺少平台动态库的的原因,不能直接运行。 (2017-08-29 16:32) 

注意qamqp.dll是用Qt5.3.1编译的,你的Qt版本是?

liruigood 2017-08-29 16:41
哦哦,可能是这个原因!我的是5.5.1版本的。

liruigood 2017-08-29 16:44
robinsonsir:注意qamqp.dll是用Qt5.3.1编译的,你的Qt版本是? (2017-08-29 16:40) 

我是直接考你的dll才运行出来的,那你是怎么编译的呢?能给以连接或者完整的工程qamqp吗?

robinsonsir 2017-08-29 17:10
liruigood:我是直接考你的dll才运行出来的,那你是怎么编译的呢?能给以连接或者完整的工程qamqp吗? (2017-08-29 16:44) 

你可以先重新下载一下我的ReleaseFiles,我更新了下。
qamqp项目源码地址:https://github.com/RobinsonSir/qamqp

liruigood 2017-08-29 18:01
谢谢楼主,我重新编译完,连接成功了,也可以互发信息。你后来的ReleaseFiles直接运行,也都是好使的。再次感谢!

gameviva 2017-09-21 14:47
[attachment=17935]

楼主你好,工程调试不通过,我看是缺了静态库文件吧。

gameviva 2017-09-22 08:29
原本把qamqp.dll放在bin目录就好了,解决了

gameviva 2017-09-22 08:31
楼主,有没有qamqp.lib可以提供一下

robinsonsir 2017-09-22 11:00
gameviva:楼主,有没有qamqp.lib可以提供一下 (2017-09-22 08:31)

https://github.com/RobinsonSir/qamqp     可以自己编译。

gameviva 2017-09-22 11:37
多谢


gameviva 2017-09-22 14:24
[attachment=17945]

楼主,工程调试不能通过,问一下这个库是怎么生成的呢,我研究了半天也没弄明白。

robinsonsir 2017-09-25 10:04
gameviva:
[图片]
楼主,工程调试不能通过,问一下这个库是怎么生成的呢,我研究了半天也没弄明白。


如果只是要生成dll库文件,你只要构建就好了(可能有错误提示可忽略),生成的库文件在下面的路径:
[attachment=17965]


这是我的项目路径配置
[attachment=17966]




gameviva 2017-09-26 14:29
[attachment=17970]
感谢楼主的回复,生成dll是没有问题,就是自带的那些demo都运行不了。我现在不调用dll了,把所有的头文件都包括进来就能用了,感谢楼主!

hanheyfon 2018-04-11 08:58
    

dddggg 2018-04-14 12:54
      

robinsonsir 2018-04-16 20:54
好像用的人比较少

hanheyfon 2018-10-14 19:10
      


查看完整版本: [-- Qt使用 消息队列框架 RabbitMQ --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled