AWS Ошибка IOT: преждевременное закрытие при onclosenexttick - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь создать базовое c AWS IOT Javascript приложение, ниже приведен исходный код

var awsIot = require('aws-iot-device-sdk');

var device = awsIot.device({
keyPath: 'xxx-private.pem.key',
certPath: 'xxx-certificate.pem.crt',
caPath: 'AmazonRootCA1.pem',
clientId: 'xxx_policy',
host: 'xxxxx.amazonaws.com'
});

device.on('connect', function() {
console.log('connect');
//device.subscribe('topic_1');
device.publish('MyConnectPolicy', JSON.stringify({ test_data: 'NodeJS server connected...'}));
});

device.on('message', function(topic, payload) {
console.log('message', topic, payload.toString());
});

При запуске этого проекта я получаю ниже ошибка

events.js:200
throw er; // Unhandled 'error' event
^
Error: premature close
at onclosenexttick (xxx/node_modules/end-of-stream/index.js:54:86)
at processTicksAndRejections (internal/process/task_queues.js:76:11)

Emitted 'error' event on DeviceClient instance at:
at MqttClient. (xxx/node_modules/aws-iot-device-sdk/device/index.js:772:15)
at MqttClient.emit (events.js:228:7)
at TLSSocket.f (xxx/node_modules/once/once.js:25:25)
at onclosenexttick (xxx/node_modules/end-of-stream/index.js:54:73)
at processTicksAndRejections (internal/process/task_queues.js:76:11)

Может кто-нибудь решить эту проблему, заранее спасибо.

1 Ответ

0 голосов
/ 08 апреля 2020

У меня недавно была такая же проблема при попытке подключиться к thing на AWS с использованием AWS -IoT-SDK для узла. Наконец-то я нашел свое решение по этой [проблеме Github] [https://github.com/aws/aws-iot-device-sdk-js/issues/304#issuecomment -608500683] .

Я не прикрепил политику к своему thing.

Чтобы создать новую политику для вашего thing, вы можете сделать это при создании вещи или

In the left navigation pane, choose Secure, and then choose Policies. On the You don't have a policy yet page, choose Create a policy.

On the Create a policy page, in the Name field, enter a name for the policy (for example, MyIotPolicy). Do not use personally identifiable information in your policy names.

Дальнейшее чтение

...