连接到AWS IoT MQTT主题的客户端数

ksk*_*ran 5 amazon-web-services ios aws-sdk aws-iot

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

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

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

Joh*_*oom 3

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

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

$aws/events/subscriptions/subscribed/{clientId}
$aws/events/subscriptions/unsubscribed/{clientId}
Run Code Online (Sandbox Code Playgroud)

您可以创建一个 IoT 规则,将所有订阅和取消订阅的事件从这些保留主题转发到 S3、DynamoDB 或 RDS 以供查询。一个简单的 Lambda 函数可以在 DynamoDB 中增加订阅量并减少取消订阅量,也能很好地工作。(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"\]
}
Run Code Online (Sandbox Code Playgroud)