qpid proton url,用于从给定订阅(主题)接收消息

Posted

技术标签:

【中文标题】qpid proton url,用于从给定订阅(主题)接收消息【英文标题】:qpid proton url for receiving messages from a given subscription (of a topic) 【发布时间】:2017-12-24 09:50:30 【问题描述】:

我想从服务总线读取订阅消息。我正在为 python 使用qpid-proton 库。我正在关注此链接以接收消息Proton-Python-Example-Simple-Receive。我正在传递此 url 以接收来自服务总线的消息 -

url = 'amqps://mynamespace.servicebus.windows.net/SharedAccessKeyName=xxxx/SharedAccessKey=xxxxxxxxx/python-test/Subscriptions/AllMessages'
# python-test is the name of the topic
# AllMessages is the name of the subscription

我收到以下错误 - ERROR:root:The messaging entity 'sb://mynamespace.servicebus.windows.net/sharedaccesskeyname=xxxxx/sharedaccesskey=xxxxxxxxxxxxx/python-test/subscriptions/allmessages' could not be found. TrackingId:c1e4a39edbd44040b2fd48a552d6ae2b_G2, SystemTracker:gateway6, Timestamp:7/19/2017 7:58:51 AM

这是由于上述 URL 的格式不正确。我在网上搜索过,没有提供这方面的适当文件。通过 qpid 读取订阅消息的正确 URL 格式是什么。

【问题讨论】:

【参考方案1】:

请尝试如下更改您的网址。

amqps://<SAS Policy Name>:<SharedAccessKey>@mynamespace.servicebus.windows.net/python-test/Subscriptions/AllMessages

【讨论】:

我的实际网址是'amqps://All:Dj8/JPib+RKJS4haixxxxxxxxx@eventservice.servicebus.windows.net/job/Subscriptions/Create'。它抛出错误“ValueError:不是有效的端口号或服务名称:'Dj8'”。我认为这是我的共享访问密钥的问题,因为它包含一个“/”字符 @AnuragSharma 请重新生成不带/ 符号的共享访问密钥以重试。根据我的经验,我认为问题是由于 amqp url 解析器无法正确解析 url。 PaterPan - 我现在收到此错误 - 执行此操作需要“Listen”声明。

以上是关于qpid proton url,用于从给定订阅(主题)接收消息的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python Qpid/Proton/Messenger(),如何过滤来自 Azure 事件中心的消息?

python-qpid-proton 示例,向 azure 发送消息不起作用

AMQP Qpid Proton - 无法将消息发送到超过 256 个队列

从给定的 url 中提取主域名

2019 年 macOS 上的 SASL 状态如何?

使用 AMQP 1.0 使用 Qpid 从客户端动态创建队列和主题