Как интегрировать Azure IOT Hub с приложением Ionic Mobile? - PullRequest
0 голосов
/ 20 сентября 2019

Мне нужно реализовать уведомления в моем приложении Ionic для Android.Для этого мы установили Azure IOT Hub, где устройство должно быть зарегистрировано, и оттуда мы можем отправлять сообщения на устройство и наоборот (с устройства в облако).

Теперь я прошелмного ссылок в гугле относительно плагинов для лазури в Ionic, я пробовал их, но тщетно.Мне нужно сделать две вещи

  1. Зарегистрировать идентификатор устройства в концентраторе IOT Azure
  2. Отправить уведомление в концентраторе IOT Azure, используя этот идентификатор устройства, чтобы я мог получить его вустройство.

Я прошел

  1. https://github.com/Azure/azure-iot-sdk-node
  2. https://github.com/derek82511/cordova-azure-notification-hubs

Никто из них не помог мнезарегистрировать устройство в IOT Hub.Кто-нибудь может направить меня в правильном направлении.Мне нужно знать, как подключить Azure IOT Hub к моему мобильному приложению Ionic для Android.

Код:

var iothub = require('azure-iothub'); 
var connectionString = config.hubConnectionString;

      var registry = iothub.Registry.fromConnectionString(connectionString);

      // Create a new device
      var device = {
      deviceId: uuid
      };

      registry.create(device, function(err, deviceInfo, res) {
          if (err) {
            console.log( ' error: ' + err.toString());
            this.showAlert('Create Device Error',err.toString());
          }
          if (res) {
            console.log(' status: ' + res.statusCode + ' ' + res.statusMessage);
            this.showAlert('Create Device Success Response',`status: ${res.statusCode} ${res.statusMessage}`);
          }
          if (deviceInfo) {
            console.log(' device info: ' + JSON.stringify(deviceInfo));
            this.showAlert('Device Info',JSON.stringify(deviceInfo));
          }
      });

      //var clientFromConnectionString = require('azure-iot-device-http').clientFromConnectionString;
      //var Message = require('azure-iot-device').Message;

      var connectionString = config.hubConnectionString;

      var client = clientFromConnectionString(connectionString);

      var connectCallback = function (err) {
        if (err) {
          console.error('Could not connect: ' + err);
          this.showAlert('HTTP Connection Error',err.toString());

        } else {
          console.log('Client connected');
          var message = new Message('some data from my device');
          client.sendEvent(message, function (err) {
            if (err) {
              console.log(err.toString());
              this.showAlert('HTTP Send IOT Message Error',err.toString());
            }
          });

          client.on('message', function (msg) { 
            console.log(msg); 
            this.showAlert('IOT Received Message',msg);
            client.complete(msg, function () {
              console.log('completed');
            });
          }); 
        }
      };

      client.open(connectCallback);

1 Ответ

0 голосов
/ 20 сентября 2019

Вам необходимо использовать IoT Hub Service SDK: https://www.npmjs.com/package/azure-iothub

Этот пример взят по этой ссылке и показывает, как использовать реестр устройства для создания нового устройства.

var iothub = require('azure-iothub');

var connectionString = '[IoT Connection String]';

var registry = iothub.Registry.fromConnectionString(connectionString);

// Create a new device
var device = {
deviceId: 'sample-device-' + Date.now()
};

registry.create(device, function(err, deviceInfo, res) {
    if (err) console.log('error: ' + err.toString());
    if (res) console.log('status: ' + res.statusCode + ' ' + res.statusMessage);
    if (deviceInfo) console.log('device info: ' + JSON.stringify(deviceInfo));
});
...