1.RabbitMQ入门 用途说明和深入理解
RabbitMQ入门 用途说明和深入理解_走错路的程序员的博客-CSDN博客
2.RabbitMQ进阶/管理/配置
RabbitMQ进阶/管理/配置_东孤熊猫的博客-CSDN博客_/api/exchanges/vhost/name/publish
3.rabbitmq使用mqtt协议
rabbitmq使用mqtt协议_m0_67392661的博客-CSDN博客_rabbitmq使用mqtt
RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较 - kevin-zhang - 博客园
5.RabbitMq的整理 exchange、route、queue关系
RabbitMq的整理 exchange、route、queue关系_可克的博客-CSDN博客
6.Windows 安装RabbitMQ
Windows 安装RabbitMQ_qq1326702940的博客-CSDN博客
7.Windows下安装RabbitMQ报错:unable to perform an operation on node时的解决方案(打开Rabbit MQ报错,需要按照文章描述的操作,注意文中选择操作系统账号必须是操作系统当前登录的账号)
Windows下安装RabbitMQ报错:unable to perform an operation on node时的解决方案
8.RabbitMQ 搭建MQTT服务
RabbitMQ 搭建MQTT服务_qq1326702940的博客-CSDN博客_rabbitmq搭建mqtt服务
9.全网最全RabbitMQ总结,别再说你不会RabbitMQ
全网最全RabbitMQ总结,别再说你不会RabbitMQ - 掘金
10.xmlHttp.open的第三个参数true与false
xmlHttp.open的第三个参数true与false_平常心lzt的博客-CSDN博客_xhr.open第三个参数
11.RabbitMQ交换器Exchange介绍
RabbitMQ交换器Exchange介绍_Hi-Sunshine的博客-CSDN博客
12.Postman工具的简单介绍
Postman工具的简单介绍_ζ小菜鸡的博客-CSDN博客_postman工具
13.RabbitMQ通过http API获取队列消息数量等信息
RabbitMQ通过http API获取队列消息数量等信息_我迷了鹿ll的博客-CSDN博客
14.PB 发送消息到Rabbit M Q
PB 发送消息到Rabbit M Q_走错路的程序员的博客-CSDN博客
主要参考这篇文章,没有调试通的原因是RabbitBQ端(win10)防火墙没有关闭掉,导致的。
1:pb发送消息给RabbitMQ
OLEObject http
int li_ret
String Http_Name,result,ls_args,fs_errmsg
//注意这里的%2F是 vhost为/的对应值 所以这个 %2F 代表 /
Http_Name = "http://192.168.5.234:15672/api/exchanges/%2F/XgpFirstExchange/publish"
http = CREATE OLEObject
//li_ret=http.ConnectToNewObject("Msxml2.XMLHTTP")
li_ret = http.ConnectToNewObject( "Msxml2.XMLHTTP.3.0")
If li_ret <> 0 Then
messagebox( 'result ','链接失败')
li_ret = http.ConnectToNewObject( "Msxml2.XMLHTTP.6.0")
End If
if(li_ret <> 0 ) then
messagebox( 'result ','链接失败')
return -1
end if
try
ls_args = '{"properties":{},"routing_key":"XgpFirstRoutingKey","payload":"It is ok!","payload_encoding":"string"}'
//XgpFirstRoutingKey,是自己在RabbitMQ中设置的键值,可以自己设置规则,加小数点间隔
http.Open( "POST", Http_Name, TRUE)
http.setrequestheader("Content-type","application/json")
http.setrequestheader("Authorization","Basic Z3Vlc3Q6Z3Vlc3Q=") //Z3Vlc3Q6Z3Vlc3Q=是在 http://tool.oschina.net/encrypt?type=3 对 "用户名:密码" 进行 base64加密后的字符串,不建议用默认的用户名和密码,建议在RabbitMQ中新建用户名和密码,并设置相应权限,这里只是演示用。
http.setrequestheader("Content-Length",string( Len(ls_args) ) )
http.Send(ls_args)
do While http.readyState <> 4 // ' 查询状态,延时
yield()
Loop
result = http.responseText //这个测试用! 你可不写
catch( runtimeerror e )
fs_errmsg = 'HTTP请求失败,请检查网络2: ' + e.getmessage()
messagebox("2",fs_errmsg)
return -1
end try
http.DisconnectObject()
Destroy http
if result = '' or isnull( result ) then
result = '当前请求返回结果为空!'
messagebox("3",result)
return -1
end if
messagebox("4",result)
2:pb从RabbitMQ服务端接收消息
OLEObject http
int li_ret
String Http_Name,result,ls_args,fs_errmsg
//注意这里的%2F是 vhost为/的对应值 所以这个 %2F 代表 /
Http_Name = "http://192.168.5.234:15672/api/queues/%2F/XgpFirstQueues/get"
http = CREATE OLEObject
li_ret = http.ConnectToNewObject( "Msxml2.XMLHTTP.3.0")
If li_ret <> 0 Then
messagebox( 'result ','链接失败')
li_ret = http.ConnectToNewObject( "Msxml2.XMLHTTP.6.0")
End If
if(li_ret <> 0 ) then
messagebox( 'result ','链接失败')
return -1
end if
try
ls_args = '{"count":5,"ackmode":"ack_requeue_true","encoding":"auto","truncate":50000}'
http.Open( "POST", Http_Name, TRUE)
http.setrequestheader("Content-type","application/json")
http.setrequestheader("Authorization","Basic Z3Vlc3Q6Z3Vlc3Q=") //Z3Vlc3Q6Z3Vlc3Q=是在 http://tool.oschina.net/encrypt?type=3 对 "用户名:密码" 进行 base64加密后的字符串,不建议用默认的用户名和密码,建议在RabbitMQ中新建用户名和密码,并设置相应权限,这里只是演示用。
http.setrequestheader("Content-Length",string( Len(ls_args) ) )
http.Send(ls_args)
do While http.readyState <> 4 // ' 查询状态,延时
yield()
Loop
result = http.responseText //这个测试用! 你可不写
catch( runtimeerror e )
fs_errmsg = 'HTTP请求失败,请检查网络2: ' + e.getmessage()
messagebox("2",fs_errmsg)
return -1
end try
http.DisconnectObject()
Destroy http
if result = '' or isnull( result ) then
result = '当前请求返回结果为空!'
messagebox("3",result)
return -1
end if
messagebox("4",result)
调试过程中,主要碰到以下1、2两点,要拓展其它功能,请参考第3点HTTP API文档:
- 安装过程中碰到RabbitMQ报错:unable to perform an operation on node,主要按照参考文档第7点解决。
- 通过局域网发送消息到RabbitMQ,发送不成功,发现是RabbitMQ端win10操作系统防火墙没有关闭导致的。
- HTTP API在文档RabbitMQ首页http://127.0.0.1:15672/页面左下角可以看到。
- 实际上只要查看参考文档中第14条文章,就可以调试pb和RabbitMQ之间的通讯了,只所以写这些,是希望有需要的初学者,节省时间,少走弯路,然后自己也算是做个笔记,以便以后查看。