【问题标题】:Service Bus Route Query服务总线路由查询
【发布时间】:2019-04-15 02:43:11
【问题描述】:

我在服务总线上设置了一个端点和一条路由,并在查询中使用了这个条件:

$body.Temperature.AlarmPrius = 1

我设置的消息格式是这样的

public async void InvioDati(ProbDATA msgRicevuto) 
    { 
            var messageString = JsonConvert.SerializeObject(msgRicevuto);
            var message = new Message(Encoding.UTF8.GetBytes(messageString));
            message.ContentType = "application/json";
            message.ContentEncoding = "utf-8";
            await dispositivo.SendEventAsync(message);
        }            
    }

ProbDATA 设置为:

 public class ProbDATA
{

    public int ID { get; set; }

    public int Funzione { get; set; }        
    /******/
    public int Registro_1 { get; set; }       
    /******/
    public int Registro_2 { get; set; }       
    /******/
    public int Registro_3 { get; set; }
    /******/
    public int Alarm_123 { get; set; }
    /******/
    public int Registro_4 { get; set; }
    /******/
    public int Alarm_4 { get; set; }
    /******/
    public DateTime _TimeStamp { get; set; }
    /******/

    public override string ToString() 
    {
        return $"Temperature ::ID  {ID.ToString()}, Funzione {Funzione.ToString()}, Registro_1  {Registro_1.ToString()}, Registro_2 {Registro_2.ToString()}, Registro_3  {Registro_3.ToString()}, AlarmPrius  {Alarm_123.ToString()}, Registro_4  {Registro_4.ToString()}, Alarm_4  {Alarm_4.ToString()}, _TimeStamp {_TimeStamp.ToString("yyyy-MM-dd HH:mm:ss")}";           
    } 
}

但没有消息进入服务总线队列...我知道与我类似的其他主题(我使用 MQTT 连接),他们建议使用 heredevices/{yourDeviceId}/messages/events/$.ct=application%2Fjson&$.ce=utf-8 但我该如何实现?有什么例子吗?

【问题讨论】:

  • $body.Temperature.AlarmPrius 与您的 ProbDATA 类不匹配。尝试使用 $body.Alarm_123 = 1
  • 使用您的主体(例如 ProbDATA)更新测试/消息主体以用于测试目的(测试路由按钮)。
  • 您好 Roman,您的建议已经尝试过,但问题仍然存在,还有一个错误,Alarm_123 中的“1”输入与分配的 1 冲突。这就是为什么我将它重新命名为 AlarmPrius 无论如何我会尝试进一步的测试
  • 我刚刚测试了您的有效载荷 ProbDATA 并查询 $body.Alarm_123 = 1,它运行良好。
  • 用于测试目的:将查询设置为 true,因此每条消息都应路由到您的服务总线队列。此外,添加一条用于将所有消息(查询为真)转发到内置端点(事件)以在 DeviceExplorer 工具上查看的路由。也可以使用 Service Bus Explorer 工具。

标签: azure-iot-hub azure-servicebus-queues azure-queues


【解决方案1】:

感谢@roman Kiss,我解决了这个问题,这是一个错误的书面查询。

正确的是查询 $body.Alarm_123 = 1。再次感谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 2011-03-14
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多