Azure IoT设备:在client.js

时间:2018-05-23 14:27:19

标签: azure-iot-sdk

我尝试将一个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 \天青-IOT装置\ lib中\ client.js:596

返回新客户端(new transportCtor(authenticationProvider),null,new blob_upload_1.BlobUploadClient(authenticationProvider));                           ^

TypeError:transportCtor不是一个函数     在Function.Client.fromConnectionString

(C:\ Users \用户InterestedGuy \源\回购\ NodejsWebApp1 \ NodejsWebApp1 \ node_modules \天青-IOT装置\ lib中\ client.js:596:27)     在sendmsg(C:\ Users \ InterestedGuy \ source \ repos \ NodejsWebApp1 \ NodejsWebApp1 \ server.js:123:32)     在服务器上。 (C:\ Users \用户InterestedGuy \源\回购\ NodejsWebApp1 \ NodejsWebApp1 \ server.js:48:9)     在emitTwo(events.js:87:13)     在Server.emit(events.js:172:7)     在HTTPParser.parserOnIncoming [as oncoming](_http_server.js:529:12)     在HTTPParser.parserOnHeadersComplete(_http_common.js:88:23)

按任意键继续......

首先猜测我错过了一个图书馆,所以我只是在网上搜索了应该定义transportCtor的内容 - 但没有成功。

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

THX提供任何建议

1 个答案:

答案 0 :(得分:0)

您应安装 azure-iot-device-http 程序包,以便通过HTTP 1.1从任何设备与Azure IoT Hub进行通信。您可以使用此命令获取最新版本。

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

BTW,在本教程中,您还需要安装azure-iot-device软件包。