0

我尝试将 ARM 设备连接到 Azure IoT Hub。我选择了 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

return new Client(new transportCtor(authenticationProvider), null, new 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) at emitTwo (events.js:87:13) at Server.emit (events.js:172:7) at HTTPParser .parserOnIncoming [as onIncoming] (_http_server.js:529:12) 在 HTTPParser.parserOnHeadersComplete (_http_common.js:88:23)

按任意键继续...

第一个猜测是我错过了一个库,所以我只是搜索了应该定义 transportCtor 的 Web - 但没有成功。

所以一个简单的问题是:这个函数应该在哪里定义?我希望该功能是 Azure IoT SDK 的一部分,但我找不到它。由于来自 azure_iot_device 的模块 client.js 正在报告错误,我希望它在 SDK 中的某个地方 - 但在哪里?

THX 任何建议

4

1 回答 1

0

You should install azure-iot-device-http package to communicate with Azure IoT Hub from any device over HTTP 1.1. You can use this command to get the latest version.

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

Following code is a tutorial shows how to use this package.

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);

BTW,for this tutorial you also need to install azure-iot-device package.

于 2018-05-24T05:19:00.907 回答