AWS IoT接收消息

时间:2018-11-21 12:33:48

标签: php amazon-web-services aws-sdk iot aws-iot

您好,我尝试从AWS IoT接收消息。对于发布,我使用php-sdk

use Aws\IotDataPlane\IotDataPlaneClient

$connectionParams = [
            'version' => 'latest',
            'region'  => $region,
            'credentials' => [
                'key' => $key,
                'secret' => $secret,
            ]
];

$this->client = new IotDataPlaneClient($connectionParams);
$this->client->publish([
                "payload" => $message,
                'qos' => 1,
                'topic' => $topic,
            ]);

但是我没有任何接收方法。有人知道如何连接和接收消息吗?

1 个答案:

答案 0 :(得分:0)

您需要订阅MQTT主题。您有几种选择。

  1. 您可以将代理与Lambda连接到Kinesis,SNS等。因此您的接收处理程序可以存在于lambda中。
  2. 您可以编写代码来自己订阅MQTT代理,并使用适当的IAM角色/策略将其放入EC2,ECS等中。 IoT端点实际上是MQTT代理,因此这是您需要接收消息的唯一配置。该终端节点在AWS IoT>设置>自定义终端节点上可见

接收消息的Lambda看起来像这样,其中事件是入站MQTT消息

const AWS = require('aws-sdk');

exports.handler = (event, context, callback) => {
    const id = event.id;
    const chan0 = event.chan0;
}