Apache 使用ActiveMQ代替microsoft服务总线

Apache 使用ActiveMQ代替microsoft服务总线,apache,azure,activemq,azure-servicebus-queues,azure-iot-hub,Apache,Azure,Activemq,Azure Servicebus Queues,Azure Iot Hub,我曾尝试将ActiveMQ用作Microsoft服务总线。我在activemq上配置了ssl层,并且一个c#应用程序已经使用azure servicebus SDK创建了$cbs队列 但当我尝试在我的设备上使用azure IotHub SDK C时,似乎应该传递activemq用户名和密码。如何更改IoTubTransport_amqp_common.c以将设备连接到ActiveMQ 我可以使用amqpnetlite连接到Azure IoTHub。如果我想连接到activeMQ,我应该传递用户名

我曾尝试将ActiveMQ用作Microsoft服务总线。我在activemq上配置了ssl层,并且一个c#应用程序已经使用azure servicebus SDK创建了$cbs队列

但当我尝试在我的设备上使用azure IotHub SDK C时,似乎应该传递activemq用户名和密码。如何更改IoTubTransport_amqp_common.c以将设备连接到ActiveMQ


我可以使用amqpnetlite连接到Azure IoTHub。如果我想连接到activeMQ,我应该传递用户名和密码。它工作正常。所以我想知道:在azure iot sdk中,如何传递这两个选项(用户名和密码)

Azure iothub sdk使用MSSBCBS for sasl机制,而activeMQ使用普通sasl。因此,对于传递用户名和密码,我们应该使用普通sasl。要更改sasl机制,可以编辑此文件: azure-iot-sdk-c/iothub\u客户端/src/iothubtransport\u amqp\u connection.c 在第49行中,而不是:

if ((sasl_mechanism = saslmechanism_create(saslmssbcbs_get_interface(), NULL)) == NULL)
付诸表决:

您还需要添加
#包括“azure_uamqp_c/sasl_plain.h”

这里没有足够的信息。。您需要共享相关的日志语句和/或程序源。从源程序的名称来看,它似乎正在尝试使用AMQP协议进行连接。检查一下:我对activeMQ配置没有问题。我可以使用连接到Azure IoTHub。如果我想连接到activeMQ,我应该传递用户名和密码。它工作正常。所以我想知道:我如何传递这两个选项(用户名和密码)?
 SASL_PLAIN_CONFIG sasl_plain_config;
            sasl_plain_config.authcid = "username";
            sasl_plain_config.authzid = NULL;
            sasl_plain_config.passwd = "password";

 if ((sasl_mechanism = saslmechanism_create(saslplain_get_interface(), &sasl_plain_config)) == NULL)