TypeError:client.getReceiver 不是 azure-iot-device-http 示例中的函数

TypeError: client.getReceiver is not a function in azure-iot-device-http examples

本文关键字:函数 azure-iot-device-http client getReceiver 不是 TypeError      更新时间:2023-09-26

我正在使用azure-iot-device-http,并运行入门代码:

var clientFromConnectionString = require('azure-iot-device-http').clientFromConnectionString;
var Message = require('azure-iot-device').Message;
var connectionString = 'myHostname,myDevice,myKey;
var client = clientFromConnectionString(connectionString);
var msg = new Message('some data from my device');
client.sendEvent(msg, function (err) {
  if (err) console.log(err.toString());
});
client.getReceiver(function (err, rcv) {
  rcv.on('message', function (msg) {
    console.log(msg);
    rcv.complete(msg, function () {
      console.log('completed');
    });
  });
  rcv.on('errorReceived', function (err) {
    console.warn(err);
  });
});

但是我收到此错误:

TypeError: client.getReceiver 不是函数

这似乎是库示例中的错误。它看起来不像它定义了client.getReceiver.你可能应该在这里提交一个错误:github问题。

尝试使用

client._transport.getReceiver(function (err, rcv) {

作为解决方法

client.getReceiver(function (err, rcv) {

直到他们在库中修复它。