Azure的服务总线:队列,只要求无消息(Azure Service Bus: No message

2019-09-26 13:56发布

我从物联网枢纽使用服务总线队列为IOT中心端点的功能的应用程序试图路由消息。 我发送到物联网中心的消息被登记在物联网中心,但不会被路由到服务总线队列。 当监控服务总线队列,我只看到成功的请求。

我实现了下列标准两个路由规则:

$._eventtype="meeting"

$body._eventtype="meeting"

我测试的第二个与由天青提供的例子和它匹配。 他们俩似乎将消息转发到服务总线。

下面为一个样本消息,这我想航线。

{"_room": "-----", 
 "_eventtype": "meeting", 
 "_temperature": 25, 
 "_building": "-----", 
 "_timestamp": "2018-01-24T11:08:13.056792Z", 
 "_humidity": 36, 
 "_id": 0}

Answer 1:

你的路由的消息体的表达是正确的。 它看起来像,你的事件消息缺少内容类型和内容编码头,看到更多的细节在这里 。

在这种情况下,当你的设备MQTT直接连接,使用下面的话题,例如用于Device1的:

devices/Device1/messages/events/$.ce=utf-8&$.ct=application%2Fjson

对于HTTP连接的设备:

content-encoding:utf-8
content-type:application/json


Answer 2:

除了@Roman吻指出,要确保启用了监听权限您服务总线接收消息。

您可以按照“ 从队列端点阅读 ”接收路由到服务总线队列消息。



Answer 3:

你没有提到的客户端或协议,但如果你正在使用的Node.js和AMQP(也许是太MQTT)物联网客户端SDK,然后在身体性能路由不起作用。

本博客文章暗示它应该,但一个错误是最近才打开,表示尚未实施。



文章来源: Azure Service Bus: No messages on queue, only requests