Устройство IoT Azure: ошибка типа в файле client.js - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь подключить устройство ARM к концентратору IoT Azure.Я выбрал Node.js и получил пример кода для подключения устройства.Я добавил необходимые пакеты NPM, такие как azure_iot_device, azure_iot_common, azure_iot_http_base.

Внутри кода есть одна строка кода, которая вызывает ошибку.

Строка: client.sendEvent(message, printResultFor ('send'));

После этого на консоли отладки я получаю сообщение:

\ NodejsWebApp1 \ node_modules \ azure-iot-device \ lib \ client.js: 596

вернуть нового клиента (новый transportCtor (authenticationProvider), ноль, новый blob_upload_1.BlobUploadClient (authenticationProvider)); ^

TypeError: transportCtor не является функцией в Function.Client.fromConnectionString

(C: \ Users \ InterestedGuy \ source \ repos \ NodejsWebApp1 \NodejsWebApp1 \ node_modules \ azure-iot-device \ lib \ client.js: 596: 27) в sendmsg (C: \ Users \ InterestedGuy \ source \ repos \ NodejsWebApp1 \ NodejsWebApp1 \ server.js: 123: 32) на сервере.(C: \ Users \ InterestedGuy \ source \ repos \ NodejsWebApp1 \ NodejsWebApp1 \ server.js: 48: 9) в emitTwo (events.js: 87: 13) в Server.emit (events.js: 172: 7) в HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js: 529: 12) в HTTPParser.parserOnHeadersComplete (_http_common.js: 88: 23)

Нажмите любую клавишу, чтобы продолжить ...

Первое предположение было то, что я пропустил библиотеку, поэтому я просто искал в Интернете, где должен был быть определен transportCtor - но безуспешно.

Итак, простой вопрос: где должна быть определена эта функция?Я ожидаю, что эта функция является частью Azure IoT SDK, но не смогла найти ее.Так как модуль client.js из azure_iot_device сообщает об ошибке, я ожидаю, что она где-то в SDK - но где?

THX за любой совет

1 Ответ

0 голосов
/ 24 мая 2018

Вам необходимо установить пакет azure-iot-device-http для связи с концентратором IoT Azure с любого устройства через HTTP 1.1.Вы можете использовать эту команду для получения последней версии.

npm install -g azure-iot-device-http@latest

Следующий код является учебным пособием, показывающим, как использовать этот пакет.

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

var connectionString = '[IoT Hub device connection string]';

var client = clientFromConnectionString(connectionString);

var connectCallback = function (err) {
  if (err) {
    console.error('Could not connect: ' + err);
  } 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());
    });

    client.on('message', function (msg) { 
      console.log(msg); 
      client.complete(msg, function () {
        console.log('completed');
      });
    }); 
  }
};

client.open(connectCallback);

Кстати, для этого учебного пособия вам также необходимоустановить пакет azure-iot-device.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...