0

J'ai essayé d'utiliser ActiveMQ en tant que Microsoft Service Bus. J'ai configuré couche ssl sur activemq et la file d'attente $ cbs a déjà été créée par une application C# utilisant azure servicebus SDK.Utilisation de ActiveMQ au lieu du bus de service Microsoft

Mais quand j'ai essayé d'utiliser SDK IotHub d'azur C pour mon appareil, il semble que je devrais passer ActiveMQnom d'utilisateur etmot de passe. Comment puis-je changer le iothubtransport_amqp_common.c pour connecter mon appareil à ActiveMQ.

Je pourrais me connecter à Azure IoTHub en utilisant amqpnetlite. Si je voulais me connecter à activeMQ, je devrais passer le nom d'utilisateur et le mot de passe. Et ça fonctionne bien. donc je veux savoir: dans azur iot sdk comment puis-je passer ces 2 options (nom d'utilisateur et mot de passe)?

+0

Il n'y a pas assez d'information pour aller ici .. vous auriez besoin de partager des déclarations de journaux pertinents et/ou la source de le programme. Du nom de votre programme source, il semble qu'il essaie de se connecter en utilisant le protocole AMQP. Check this out: http://activemq.apache.org/amqp.html –

+0

Je n'ai pas de problème avec la configuration ** activeMQ **. Je pourrais me connecter à ** Azure IoTHub ** en utilisant [amqpnetlite] (https://github.com/Azure/amqpnetlite). Si je voulais me connecter à ** activeMQ **, je devrais passer _Username_ et _Password_. Et cela fonctionne __OK__. donc je veux savoir: dans [azure iot sdk] (https://github.com/Azure/azure-iot-sdk-c) comment puis-je passer ces 2 options (_Username_ et _Password_)? –

Répondre

0

Azure iothub sdk utilisant MSSBCBS pour le mécanisme sasl mais activeMQ utilise PLAIN sasl. donc pour passer le nom d'utilisateur et mot de passe, nous devrions utiliser PLAIN sasl. pour changer le mécanisme SASL vous pouvez éditer ce fichier: azur-IOT-sdk-c/iothub_client/src/iothubtransport_amqp_connection.c en ligne au lieu de 49:

if ((sasl_mechanism = saslmechanism_create(saslmssbcbs_get_interface(), NULL)) == NULL) 

put:

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) 

vous devez également ajouter #include « azure_uamqp_c/sasl_plain.h »