5

我们开发了一个 iOS 应用程序并将该应用程序配置为侦听 AWS IoT 上特定 MQTT 主题上发布的所有消息。

我只想知道,有没有办法可以提取正在收听该主题的已连接设备列表?(我检查了 cloudWatch 日志,但找不到详细信息,例如所连接设备的 MAC 地址等)。

另外,我想知道是否有限制。可以订阅主题的设备数量。

4

1 回答 1

3

单个主题的设备数量没有限制。该服务的主要优点之一 - 它几乎可以无限扩展。这是所有AWS IoT 限制的完整列表。

没有简单的方法可以查询直接从 AWS IoT 连接的设备数量。但是有一种方法可以使用AWS 保留主题中的消息数据来检测任何设备何时订阅和取消订阅主题- 特别是以下这些主题:

$aws/events/subscriptions/subscribed/{clientId}
$aws/events/subscriptions/unsubscribed/{clientId}

您可以创建一个 IoT 规则,将所有订阅和取消订阅的事件从这些保留主题转发到 S3、DynamoDB 或 RDS 以进行查询。在 DynamoDB 中增加订阅和减少取消订阅的简单 Lambda 函数也可以很好地工作。(DynamoDB 原子计数器

这也是消息正文的样子 - 来自订阅/取消订阅事件

{
    "clientId": "186b5",
    "timestamp": 1460065214626,
    "eventType": "subscribed" | "unsubscribed",
    "sessionIdentifier": "00000000-0000-0000-0000-000000000000",
    "principalIdentifier": "000000000000/ABCDEFGHIJKLMNOPQRSTU:some-user/ABCDEFGHIJKLMNOPQRSTU:some-user"
    "topics" : \["foo/bar","device/data","dog/cat"\]
}
于 2017-09-30T03:04:26.100 回答