尝试订阅AWS
我有一个节点应用程序,我使用aws-iot-sdk建立与IOT核心的连接。我正在创建一个动态主题,并且有一个规则,将消息传递给lambda,lambda执行一些后端处理。我现在正尝试订阅我通过规则引擎操作重新发布的节点应用程序中的主题。我是AWS IOT SDK的新手,因为我得到的“null”而陷入困境,请指导我。
我试图访问aws-iot-sdk的文档,按照他们写的步骤,但我无法通过相同的步骤。如果我只是在节点应用程序中发布而不是订阅,我通过SNS获得响应,但无法返回应用程序。
我的节点代码:
ar awsIot = require('aws-iot-device-sdk');
var name = 'My Thing name';
const TAG = '[' + name + '] >>>>>>>>> ';
const INIT_DELAY = 15;
var app = awsIot.device({
keyPath: 'My private key',
certPath: 'My Cert path',
caPath: 'My Root cert Path',
clientId: name,
region: 'the region',
host: "<host addr>",
});
app.on('connect', () => {
try{
app.subscribe('/postacttest/response', (event) => {
console.log(event);
});
} catch(err) {
console.log(err);
}
app.publish('/getacttest/client1', JSON.stringify(
{
state: {
desired: {
message: "GET_TEST_RESULT",
clientId: "AWSNODECLIENT"
}
}
}
));
})
以下是我得到的回复:
空值
以下是我在AWS上撰写的规则:
SELECT state.desired.clientId AS clientId
FROM "/getacttest/#"
WHERE state.desired.message="GET_TEST_RESULT"
请指导我如何订阅主题并显示结果,因为我们可以使用mqtt.js,就像WebSocket。
如果我配置我的连接对象如下所示我得到错误,如下面相同的pic'c终端区域所示:
我已经为我的ACT服务编写了所有允许和行动政策。
回答如下:我将设备配置对象更改为具有有效的区域值。它开始工作正常。
尝试订阅AWS
我有一个节点应用程序,我使用aws-iot-sdk建立与IOT核心的连接。我正在创建一个动态主题,并且有一个规则,将消息传递给lambda,lambda执行一些后端处理。我现在正尝试订阅我通过规则引擎操作重新发布的节点应用程序中的主题。我是AWS IOT SDK的新手,因为我得到的“null”而陷入困境,请指导我。
我试图访问aws-iot-sdk的文档,按照他们写的步骤,但我无法通过相同的步骤。如果我只是在节点应用程序中发布而不是订阅,我通过SNS获得响应,但无法返回应用程序。
我的节点代码:
ar awsIot = require('aws-iot-device-sdk');
var name = 'My Thing name';
const TAG = '[' + name + '] >>>>>>>>> ';
const INIT_DELAY = 15;
var app = awsIot.device({
keyPath: 'My private key',
certPath: 'My Cert path',
caPath: 'My Root cert Path',
clientId: name,
region: 'the region',
host: "<host addr>",
});
app.on('connect', () => {
try{
app.subscribe('/postacttest/response', (event) => {
console.log(event);
});
} catch(err) {
console.log(err);
}
app.publish('/getacttest/client1', JSON.stringify(
{
state: {
desired: {
message: "GET_TEST_RESULT",
clientId: "AWSNODECLIENT"
}
}
}
));
})
以下是我得到的回复:
空值
以下是我在AWS上撰写的规则:
SELECT state.desired.clientId AS clientId
FROM "/getacttest/#"
WHERE state.desired.message="GET_TEST_RESULT"
请指导我如何订阅主题并显示结果,因为我们可以使用mqtt.js,就像WebSocket。
如果我配置我的连接对象如下所示我得到错误,如下面相同的pic'c终端区域所示:
我已经为我的ACT服务编写了所有允许和行动政策。
回答如下:我将设备配置对象更改为具有有效的区域值。它开始工作正常。