Node.js 关于如何在Raspberry Pi上接收AWS物联网主题的简单示例

Node.js 关于如何在Raspberry Pi上接收AWS物联网主题的简单示例,node.js,amazon-web-services,mqtt,aws-iot,Node.js,Amazon Web Services,Mqtt,Aws Iot,我正在寻找一个简单的JavaScript示例,说明如何从主题接收消息。我正在尝试使用CodeBuild、Lambda、SNS和IoT创建一个构建Cop。我已经成功地发布了有关该主题的消息,但我一辈子都不知道该如何接收该消息 SDK中的示例没有很好的文档记录(至少对我来说),我不知道应该使用哪个导入,为什么,以及如何订阅一个简单的主题 将消息发送到该对象的代码如下所示。我是从一家兰姆达公司寄来的。代码是用TypeScript编写的,但我正在将传输的JavaScript复制并粘贴到控制台中,因为它在

我正在寻找一个简单的JavaScript示例,说明如何从主题接收消息。我正在尝试使用CodeBuild、Lambda、SNS和IoT创建一个构建Cop。我已经成功地发布了有关该主题的消息,但我一辈子都不知道该如何接收该消息

SDK中的示例没有很好的文档记录(至少对我来说),我不知道应该使用哪个导入,为什么,以及如何订阅一个简单的主题

将消息发送到该对象的代码如下所示。我是从一家兰姆达公司寄来的。代码是用TypeScript编写的,但我正在将传输的JavaScript复制并粘贴到控制台中,因为它在本机上似乎不支持TypeScript

const params = {
  topic: 'topic/buildcop',
  payload: color,
  qos: 1
};


this.iotdata.publish(params, function(err, data){
  if(err){
    console.log(`error: ${err}`);
  }
  else{
    console.log("success?");
    //context.succeed(event);
  }
});

我不确定这是否是您的意思,但下面是一个关于如何使用javascript sdk订阅主题的示例:

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

//
// Replace the values of '<YourUniqueClientIdentifier>' and '<YourCustomEndpoint>'
// with a unique client identifier and custom host endpoint provided in AWS IoT.
// NOTE: client identifiers must be unique within your AWS account; if a client attempts 
// to connect with a client identifier which is already in use, the existing 
// connection will be terminated.
//
var device = awsIot.device({
   keyPath: <YourPrivateKeyPath>,
  certPath: <YourCertificatePath>,
    caPath: <YourRootCACertificatePath>,
  clientId: <YourUniqueClientIdentifier>,
      host: <YourCustomEndpoint>
});

//
// Device is an instance returned by mqtt.Client(), see mqtt.js for full
// documentation.
//
device
  .on('connect', function() {
    console.log('connect');
    device.subscribe('topic_1');
    device.publish('topic_2', JSON.stringify({ test_data: 1}));
  });

device
  .on('message', function(topic, payload) {
    console.log('message', topic, payload.toString());
  });
var awsIot=require('aws-iot-device-sdk');
//
//替换“”和“”的值
//AWS IoT中提供了唯一的客户端标识符和自定义主机端点。
//注意:客户标识符在您的AWS帐户中必须是唯一的;如果客户端尝试
//要连接已在使用的客户端标识符,请使用现有
//连接将被终止。
//
var设备=awsIot.device({
键路径:,
证书路径:,
卡帕斯:,
客户ID:,
主持人:
});
//
//Device是mqtt.Client()返回的实例,请参阅mqtt.js以获取完整信息
//文件。
//
装置
.on('connect',function()){
console.log('connect');
device.subscribe('topic_1');
device.publish('topic_2',JSON.stringify({test_data:1}));
});
装置
.on('message',函数(主题,有效负载){
log('message',topic,payload.toString());
});

你可以在这里看到更多的例子:

你能澄清你的问题吗。您提到订阅主题、接收消息等。包括您编写的代码以及您遇到的问题。基本上,我当前的所有代码都集中在打开和关闭Pi上的红色、黄色和绿色指示灯。我还没有阅读该主题的代码,因为我不知道如何继续。我已经在AWS控制台中注册了Pi,我的JavaScript(TypeScript代码,真的)与接收消息有关,现在可以归结为一条语句:const awsIot=require('AWS-iot-device-sdk');我已经安装了设备SDK。通过运行这些示例,我已经能够“连接”到IoT,但它们的文档记录非常糟糕,我不知道为什么或者如何。我的lambda代码——发送到该对象的代码——如下所示:
const-params={
`topic:'topic/buildcop',`payload:color,`qos:1`
}``
this.iotdata.publish(参数,函数(err,data){
`if(err){``console.log('error:'+err);`}`else{``console.log(“success?”);``//context.success(event);`}``对不起,格式太糟糕了。我想用降价法,但对我没用。也许我应该放弃电脑,成为一名隐士。你能澄清一下你所说的UniqueClientIdentifier和CustomEndpoints是什么意思吗?UniqueClientIdentifier是你为你的设备创建的唯一客户端ID,可以是唯一标识你的设备的任何字符串。自定义端点是AWS物联网主机,您可以在“设置”的AWS物联网仪表板上找到它。