Ошибка AWS IOT: преждевременное закрытие при onclosenexttick
Я пытаюсь создать базовое приложение 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 ответ
Недавно у меня была такая же проблема при попытке подключиться к thing
на AWS с помощью AWS-IoT-SDK для node. Я наконец нашел свое решение по этой [проблеме Github][https://github.com/aws/aws-iot-device-sdk-js/issues/304.
Я не прикрепил политику к своему 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.