我尝试将 ActiveMQ 用作 Microsoft Service Bus 。我在activemq上配置了 ssl layer ,并且使用azure servicebus SDK已经由c#应用程序创建了$ cbs队列。
但是当我尝试为我的设备使用azure IotHub SDK C时,我似乎应该传递 activemq 用户名和密码。如何更改iothubtransport_amqp_common.c以将我的设备连接到ActiveMQ。
我可以使用amqpnetlite连接到Azure IoTHub。如果我想连接到activeMQ,我应该传递用户名和密码。它运作正常。所以我想知道:在azure iot sdk中如何通过这两个选项(用户名和密码)?
答案 0 :(得分:0)
Azure iothub sdk使用MSSBCBS进行sasl机制但activeMQ使用PLAIN sasl。所以为了传递用户名和密码,我们应该使用PLAIN sasl。要更改sasl机制,您可以编辑此文件: 的天青-IOT-SDK-C / iothub_client / SRC / iothubtransport_amqp_connection.c 强> 在第49行而不是:
if ((sasl_mechanism = saslmechanism_create(saslmssbcbs_get_interface(), NULL)) == NULL)
放:
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)
您还需要添加 #include“azure_uamqp_c / sasl_plain.h”