• 5746阅读
  • 23回复

Qt使用 消息队列框架 RabbitMQ [复制链接]

上一主题 下一主题
离线robinsonsir
 

只看楼主 倒序阅读 楼主  发表于: 2017-08-28
关键词: 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

window.open('http://www.qtcn.org/bbs/attachment/Mon_1708/92_169080_a0004cb5ecfd384.jpg?54');" style="max-width:700px;max-height:700px;" onload="if(is_ie6&&this.offsetWidth>700)this.width=700;" >


程序截图:


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

另外注意两个客户端的bindingkey与routingkey 设置:


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



怎么启动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

只看该作者 1楼 发表于: 2017-08-29
离线liruigood

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

离线robinsonsir

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





怎么启动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 设置:

离线liruigood

只看该作者 4楼 发表于: 2017-08-29
Re:Qt使用RabbitMQ
谢谢楼主,我已经能正常访问web端了,原因是安装完rabbitmq后,没有在cmd里面安装web管理的插件。

参照这个帖子http://blog.csdn.net/seven_coder/article/details/50946562 配置就好了。
但是启动qt程序还是不能连接成功,不知道是什么原因呢?



离线robinsonsir

只看该作者 5楼 发表于: 2017-08-29
回 liruigood 的帖子
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

只看该作者 6楼 发表于: 2017-08-29
我是打开给的源码在Qt Creator里运行的,你给的ReleaseFile因为缺少平台动态库的的原因,不能直接运行。
离线robinsonsir

只看该作者 7楼 发表于: 2017-08-29
回 liruigood 的帖子
liruigood:我是打开给的源码在Qt Creator里运行的,你给的ReleaseFile因为缺少平台动态库的的原因,不能直接运行。 (2017-08-29 16:32) 

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

只看该作者 8楼 发表于: 2017-08-29
哦哦,可能是这个原因!我的是5.5.1版本的。
离线liruigood

只看该作者 9楼 发表于: 2017-08-29
回 robinsonsir 的帖子
robinsonsir:注意qamqp.dll是用Qt5.3.1编译的,你的Qt版本是? (2017-08-29 16:40) 

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

只看该作者 10楼 发表于: 2017-08-29
回 liruigood 的帖子
liruigood:我是直接考你的dll才运行出来的,那你是怎么编译的呢?能给以连接或者完整的工程qamqp吗? (2017-08-29 16:44) 

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

只看该作者 11楼 发表于: 2017-08-29
谢谢楼主,我重新编译完,连接成功了,也可以互发信息。你后来的ReleaseFiles直接运行,也都是好使的。再次感谢!
离线gameviva

只看该作者 12楼 发表于: 2017-09-21


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

只看该作者 13楼 发表于: 2017-09-22
原本把qamqp.dll放在bin目录就好了,解决了
离线gameviva

只看该作者 14楼 发表于: 2017-09-22
楼主,有没有qamqp.lib可以提供一下
离线robinsonsir

只看该作者 15楼 发表于: 2017-09-22
回 gameviva 的帖子
gameviva:楼主,有没有qamqp.lib可以提供一下 (2017-09-22 08:31)

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

只看该作者 16楼 发表于: 2017-09-22
多谢

离线gameviva

只看该作者 17楼 发表于: 2017-09-22


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

只看该作者 18楼 发表于: 2017-09-25
回 gameviva 的帖子
gameviva:
[图片]
楼主,工程调试不能通过,问一下这个库是怎么生成的呢,我研究了半天也没弄明白。


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



这是我的项目路径配置




离线gameviva

只看该作者 19楼 发表于: 2017-09-26

感谢楼主的回复,生成dll是没有问题,就是自带的那些demo都运行不了。我现在不调用dll了,把所有的头文件都包括进来就能用了,感谢楼主!
离线hanheyfon

只看该作者 20楼 发表于: 04-11
    
离线dddggg

只看该作者 21楼 发表于: 04-14
      
菜鸟
离线robinsonsir

只看该作者 22楼 发表于: 04-16
好像用的人比较少
离线hanheyfon

只看该作者 23楼 发表于: 10-14
      
快速回复
限100 字节
 
上一个 下一个