PB(PowerBuilder)如何同消息队列(RabbitMQ)通讯
- 参考文档
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文档:
- 安装过程中碰到RabbitMQ报错:unable to perform an operation on node,主要按照参考文档第7点解决。
- 通过局域网发送消息到RabbitMQ,发送不成功,发现是RabbitMQ端win10操作系统防火墙没有关闭导致的。
- HTTP API在文档RabbitMQ首页http://127.0.0.1:15672/页面左下角可以看到。
- 实际上只要查看参考文档中第14条文章,就可以调试pb和RabbitMQ之间的通讯了,只所以写这些,是希望有需要的初学者,节省时间,少走弯路,然后自己也算是做个笔记,以便以后查看。
PB(PowerBuilder)如何同消息队列(RabbitMQ)通讯相关推荐
- 初识消息队列/RabbitMQ详解
欢迎大家阅读<朝夕Net社区技术专刊> 我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦! 今天来给大家分享 ...
- 消息队列RabbitMQ的使用
最近在学习spring cloud微服务,当学习到spring cloud bus的时候,涉及到了消息队列,需要学习RabbitMQ. 一.消息队列 1.1介绍消息队列 消息队列,即MQ,Messag ...
- 消息队列RabbitMQ入门与PHP实战
消息队列介绍以及消息队列应用场景 RabbitMQ 说明 MQ(Message Queue) 即消息队列,是应用间的通信方式,消息发送后可立即返回,由消息系统来确保消息的可靠传递."消息队列 ...
- 快速掌握消息队列RabbitMQ
※快速掌握消息队列RabbitMQ 一.RabbitMQ概述 (一)什么是消息队列MQ 消息队列(Message Queue),后文称MQ,是一种 跨进程的通信机制,用于上下游传递消息. MQ作为消息 ...
- 谷粒商城12——购物车模块、消息队列RabbitMQ
文章目录 十.购物车模块 1.需求分析 2.封装vo 3.添加商品 4.查询购物车 5.选中商品 6.在购物车修改商品数量 7.在购物车删除商品 十一.消息队列RabbitMQ 1.场景分析 2.概述 ...
- RabbitMQ总结(一)--消息队列RabbitMQ应答模式(自动、手动)
原文链接 消息队列RabbitMQ应答模式(自动.手动) 为了确保消息不会丢失,RabbitMQ支持消息应答.消费者发送一个消息应答,告诉RabbitMQ这个消息已经接收并且处理完毕了.RabbitM ...
- 消息队列RabbitMQ之初学者
文章目录 消息队列 什么是消息队列 生产者和消费者 AMQP和JMS AMQP和JMS的区别 常见的MQ产品 RabbitMQ Erlang语言 RabbitMQ下载 什么是消息队列RabbitMQ? ...
- SpringCloud源码探析(六)-消息队列RabbitMQ
1.概述 RabbitMQ是一个开源的消息代理和队列服务器,它是基于Erlang语言开发,并且是基于AMQP协议的.由于Erlang语言最初使用与交换机领域架构,因此使得RabbitMQ在Broker ...
- 消息队列RabbitMQ基本使用(Java代码实现)
同步通讯的问题 调用链中每个服务在等待响应的过程中,不能释放请求占用的资源,如果服务级联失败,提供者出现故障,会导致所有调用方出现问题. 这里介绍几个概念,以购买商品为例,支付服务是事件发布者(pub ...
- Linux中级实战专题篇:rabbitmq(消息中间件p2p模式和pub模式,消息队列rabbitmq详解,单机安装,集群部署以及配置实战)
一.消息中间件相关概念 1.简介 消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台相关 的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息 队列模型,可以在分布 ...
最新文章
- 用反向传导做分子模拟:苯胺(C6H5NH2)和硝基苯(C6H5NO2)
- 海康威视:增速超预期 调高盈利预测
- Python OpenCV实例:图像直方图均衡化(数学公式简单实现)
- Python+matplotlib使用雷达图技术绘制五角星
- 从 SQL Server 到 MySQL (三):愚公移山 - 开源力量
- 安装mariadb---通用二进制格式安装
- 连发生成工具_Win10菜单习惯吗?快看吧,Win10快速切换成Win7菜单就这么简单
- 晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) ESP8285/ESP8266芯片案例
- Excel学习 -- 函数基础
- 计算机网络第二章学习通题目及答案
- 双12使用腾讯云WAF反羊毛党、黄牛党战纪全记录
- CSS盒模型的2个误区
- word2016排版脚注问题
- 四川大学计算机考研信息汇总
- 2022N1叉车司机考试练习题模拟考试平台操作
- 公开招标,邀请招标,竞争性谈判,询价采购之间的区别
- 你所在的IT公司有多少人是培训机构出来的
- 无源波分和彩光模块_易飞扬彩光模块百科
- 人脸识别0-01:insightFace-模型复现-史上最全
- 公式截取神器:将文献中的公式快速粘贴进word: