PB(PowerBuilder)如何同消息队列(RabbitMQ)通讯

2023-11-16

  • 参考文档

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之间的通讯了,只所以写这些,是希望有需要的初学者,节省时间,少走弯路,然后自己也算是做个笔记,以便以后查看。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PB(PowerBuilder)如何同消息队列(RabbitMQ)通讯 的相关文章

随机推荐

  • c语言实验5循环结构程序,C语言学习知识循环结构程序设计实验报告.doc

    C语言学习知识循环结构程序设计实验报告 doc 甘肃政法学院本科生实验报告 五 姓名赵明翔学院公安技术学院专业安全防范工程班级 2015级安全防范工程班实验课程名称程序设计实验日期2016年月日开课时间2015学年第二学期实验题目实验5 循
  • ios链式编程

    首先我们看一下使用Masonry对控件进行布局的代码格式 self bottomView1 mas makeConstraints MASConstraintMaker make make left mas equalTo 20 make
  • 不坑盒子 + 智能写作(Office、WPS插件)助你高效办公,早点下班回家。

    不坑盒子简介 很多朋友在工作过程中需要对Word文档进行编辑处理 如果想让Word排版更有效率可以试试小编带来的这款不坑盒子软件 这是一个非常好用的插件工具 专门应用在Word文档中 支持Office 2010以上的版本 用户可以借助工具快
  • Des加密原理与简单实现

    源码 https gitee com Cheney822 programmes blob master des py 摘要 实验利用Python语言实现了des加密和解密的功能 并封装成一个类方便后续调用 程序可以读取由数字 符号 字母和中
  • Quartus-建立新工程

    目录 1 安装并破解软件之后 启动Quartus 打开File gt New Project Wizard 进入下一个设置界面 2点击Next跳过介绍页 进入工程设置页 3 配置工程 4建立新的工程文件 5 更改代码编辑器 1 安装并破解软
  • UPF 学习

    常见基本概念及用到的元件 1 电压域 power domain 在逻辑上看 power domain是一组instance 的集合 集合中所有的instance 共用相同的supply set 从物理上看 一个power domain 对应
  • 区块链节点和区块区别_什么是区块链技术?从头开始第4讲_维护区块链的网络和节点...

    维护区块链 网络和节点 区块链由对等网络维护 网络是彼此互连的节点集合 节点是单独的计算机 它们接收输入并对它们执行功能并提供输出 区块链使用一种称为 点对点网络 的特殊网络 该网络在参与者之间划分其整个工作负载 所有参与者都享有同等特权
  • 电池电量与电压的关系

    目前 2012 6 人们主要使用两种监测方法 1 电流积分 current integration 为基础 前者依据一种稳健的思想 即如果对所有电池的充 放电流进行积分 就可以得出剩余电量的大小 当电池刚充好电并且已知是完全充电时 使用电流
  • flutter http成功后回调的写法

    方法如下 获取用户档案解锁状态和个人信息 getUnLockUserInfoStatus int userID Function callBack 回调的方法 表示这个参数可写可不写 if userID 0 return RxHttp
  • 数据库设计与优化

    数据库设计与优化是一个相对复杂的话题 需要涉及到多个方面 包括数据库的基本概念 关系型数据库的设计 数据库优化技巧等 下面将按照逻辑顺序一步一步详细介绍 排版清晰易懂 希望对你有所帮助 数据库基础概念 什么是数据库 数据库是一个有组织 有结
  • 100天精通Python(数据分析篇)——第73天:Pandas文本数据处理方法之查找、替换、拼接、正则、虚拟变量

    文章目录 每篇前言 一 Python字符串内置方法 1 文本查找 2 文本替换 3 文本拼接 4 正则提取 二 Pandas实现文本查找 1 str startswith 字符串 2 str endswith 字符串 3 str index
  • java.lang.IllegalStateException: Failed to load property source

    java lang IllegalStateException Failed to load property source from file H codes20210804 nacos demo provider target clas
  • Mybatis-plus中BaseMapper具体方法说明

    一 BaseMapper方法详解 1 Insert 插入一条记录 int insert T entity 2 Delete 根据 entity 条件 删除记录 int delete Param Constants WRAPPER Wrapp
  • NVIDIA-SMI系列命令总结

    1 NVIDIA SMI介绍 nvidia smi简称NVSMI 提供监控GPU使用情况和更改GPU状态的功能 是一个跨平台工具 它支持所有标准的NVIDIA驱动程序支持的Linux发行版以及从WindowsServer 2008 R2开始
  • 2024年java面试--mysql(4)

    系列文章目录 2024年java面试 一 spring篇 2024年java面试 二 spring篇 2024年java面试 三 spring篇 2024年java面试 四 spring篇 2024年java面试 集合篇 2024年java
  • Shopify商品置顶功能

    Shopify商品置顶功能 商品置顶功能描述 通过在商品列表页为链接添加参数的方法实现置顶某个或多个商品的功能 需按以下步骤将目标代码添加到目标位置 目标代码 assign handles assign handleSize 0 if cu
  • RabbitMQ启动没有端口号解决问题

    docker启动容器时报 Failed to create thread Operation not permitted 1 原因 docker内的用户权限受限 解决办法1 启动docker时加上参数 privileged true pri
  • 【空气检测仪专题】10.增加电池显示

    10 增加电池显示 增加了电池电量显示和充电电池动画 增加PM2 5传感器 并显示实时数据 效果如下图
  • Allegro 镜像丝印处理

    本文问题描述 Allegro 设计中丝印镜像了 在器件在正面 丝印也在正面 但是不管怎么 R 都转不过来 发现其实丝印已经被镜像至反面 可能也就需要简单左右镜像下 就可以了 如下图 艹作 在菜单栏点击view 选择Flip Design 点
  • PB(PowerBuilder)如何同消息队列(RabbitMQ)通讯

    参考文档 1 RabbitMQ入门 用途说明和深入理解 RabbitMQ入门 用途说明和深入理解 走错路的程序员的博客 CSDN博客 2 RabbitMQ进阶 管理 配置 RabbitMQ进阶 管理 配置 东孤熊猫的博客 CSDN博客 ap