• 参考文档

1.RabbitMQ入门 用途说明和深入理解

RabbitMQ入门 用途说明和深入理解_走错路的程序员的博客-CSDN博客

2.RabbitMQ进阶/管理/配置

RabbitMQ进阶/管理/配置_东孤熊猫的博客-CSDN博客_/api/exchanges/vhost/name/publish

3.rabbitmq使用mqtt协议

rabbitmq使用mqtt协议_m0_67392661的博客-CSDN博客_rabbitmq使用mqtt

4.RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较

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)防火墙没有关闭掉,导致的。

  • PB发送和接收消息过程

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文档:

  1. 安装过程中碰到RabbitMQ报错:unable to perform an operation on node,主要按照参考文档第7点解决。
  2. 通过局域网发送消息到RabbitMQ,发送不成功,发现是RabbitMQ端win10操作系统防火墙没有关闭导致的。
  3. HTTP API在文档RabbitMQ首页http://127.0.0.1:15672/页面左下角可以看到。
  4. 实际上只要查看参考文档中第14条文章,就可以调试pb和RabbitMQ之间的通讯了,只所以写这些,是希望有需要的初学者,节省时间,少走弯路,然后自己也算是做个笔记,以便以后查看。

PB(PowerBuilder)如何同消息队列(RabbitMQ)通讯相关推荐

  1. 初识消息队列/RabbitMQ详解

    欢迎大家阅读<朝夕Net社区技术专刊> 我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦! 今天来给大家分享 ...

  2. 消息队列RabbitMQ的使用

    最近在学习spring cloud微服务,当学习到spring cloud bus的时候,涉及到了消息队列,需要学习RabbitMQ. 一.消息队列 1.1介绍消息队列 消息队列,即MQ,Messag ...

  3. 消息队列RabbitMQ入门与PHP实战

    消息队列介绍以及消息队列应用场景 RabbitMQ 说明 MQ(Message Queue) 即消息队列,是应用间的通信方式,消息发送后可立即返回,由消息系统来确保消息的可靠传递."消息队列 ...

  4. 快速掌握消息队列RabbitMQ

    ※快速掌握消息队列RabbitMQ 一.RabbitMQ概述 (一)什么是消息队列MQ 消息队列(Message Queue),后文称MQ,是一种 跨进程的通信机制,用于上下游传递消息. MQ作为消息 ...

  5. 谷粒商城12——购物车模块、消息队列RabbitMQ

    文章目录 十.购物车模块 1.需求分析 2.封装vo 3.添加商品 4.查询购物车 5.选中商品 6.在购物车修改商品数量 7.在购物车删除商品 十一.消息队列RabbitMQ 1.场景分析 2.概述 ...

  6. RabbitMQ总结(一)--消息队列RabbitMQ应答模式(自动、手动)

    原文链接 消息队列RabbitMQ应答模式(自动.手动) 为了确保消息不会丢失,RabbitMQ支持消息应答.消费者发送一个消息应答,告诉RabbitMQ这个消息已经接收并且处理完毕了.RabbitM ...

  7. 消息队列RabbitMQ之初学者

    文章目录 消息队列 什么是消息队列 生产者和消费者 AMQP和JMS AMQP和JMS的区别 常见的MQ产品 RabbitMQ Erlang语言 RabbitMQ下载 什么是消息队列RabbitMQ? ...

  8. SpringCloud源码探析(六)-消息队列RabbitMQ

    1.概述 RabbitMQ是一个开源的消息代理和队列服务器,它是基于Erlang语言开发,并且是基于AMQP协议的.由于Erlang语言最初使用与交换机领域架构,因此使得RabbitMQ在Broker ...

  9. 消息队列RabbitMQ基本使用(Java代码实现)

    同步通讯的问题 调用链中每个服务在等待响应的过程中,不能释放请求占用的资源,如果服务级联失败,提供者出现故障,会导致所有调用方出现问题. 这里介绍几个概念,以购买商品为例,支付服务是事件发布者(pub ...

  10. Linux中级实战专题篇:rabbitmq(消息中间件p2p模式和pub模式,消息队列rabbitmq详解,单机安装,集群部署以及配置实战)

    一.消息中间件相关概念 1.简介 消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台相关 的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息 队列模型,可以在分布 ...

最新文章

  1. 用反向传导做分子模拟:苯胺(C6H5NH2)和硝基苯(C6H5NO2)
  2. 海康威视:增速超预期 调高盈利预测
  3. Python OpenCV实例:图像直方图均衡化(数学公式简单实现)
  4. Python+matplotlib使用雷达图技术绘制五角星
  5. 从 SQL Server 到 MySQL (三):愚公移山 - 开源力量
  6. 安装mariadb---通用二进制格式安装
  7. 连发生成工具_Win10菜单习惯吗?快看吧,Win10快速切换成Win7菜单就这么简单
  8. 晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) ESP8285/ESP8266芯片案例
  9. Excel学习 -- 函数基础
  10. 计算机网络第二章学习通题目及答案
  11. 双12使用腾讯云WAF反羊毛党、黄牛党战纪全记录
  12. CSS盒模型的2个误区
  13. word2016排版脚注问题
  14. 四川大学计算机考研信息汇总
  15. 2022N1叉车司机考试练习题模拟考试平台操作
  16. 公开招标,邀请招标,竞争性谈判,询价采购之间的区别
  17. 你所在的IT公司有多少人是培训机构出来的
  18. 无源波分和彩光模块_易飞扬彩光模块百科
  19. 人脸识别0-01:insightFace-模型复现-史上最全
  20. 公式截取神器:将文献中的公式快速粘贴进word:

热门文章

  1. STM32如何将文件放到内部flash里面
  2. 国内优秀低代码平台有哪些?推荐这20家
  3. 《这些年,我们读过的技术经典图书》主题有奖征文【已结束】
  4. 牛客网刷题记录 || 循环
  5. 背调可以杜绝简历造假吗?
  6. 汽车以太网- MAC地址
  7. Git忽略文件不起作用解决方案
  8. Arduino中的滑动开关和按钮开关
  9. 解决:CondaHTTPError: HTTP 000 CONNECTION FAILED for url
  10. uva1368题解 zyq_198