如何获得AWS IOT客户端ID?

时间:2017-10-08 17:15:56

标签: amazon-web-services aws-iot

我使用AWS IoT在我的Web应用程序中进行实时更新。 应用程序使用aws-iot-device-sdk连接到AWS IoT:

const client = awsIot.device({
    region: awsConfig.region,
    protocol: 'wss',
    accessKeyId: <accessKey>,
    secretKey: <secretKey>,
    sessionToken: <sessionToken>,
    port: 443,
    host: <iotEndpoint>
});

client.on('connect', res => {
    // ok
});

我想使用AWS Lifecycle Events。例如:

$aws/events/presence/connected/{clientId}

如何获取MQTT客户端ID?

3 个答案:

答案 0 :(得分:2)

如果查看the documentation,您会看到clientId是您可以提供给device()方法的参数之一。您应该为每个连接的设备生成一个客户端ID,该ID对您的应用程序是唯一的(即,您的AWS IoT帐户是唯一的)。

答案 1 :(得分:1)

每当您在AWS IoT中定义事物时,都会在您的AWS IoT帐户中为您的设备分配唯一标识符。默认情况下,它与thing的名称(defaultClientId)相同,您可以使用它来连接到AWS IoT代理。 您可以使用AWS开发工具包(或设备名称)检索有关您的事物的信息。例如,使用Python SDK:

import boto3
client = boto3.client('iot')
response = client.describe_thing(
    thingName = [Name of your thing in AWS IoT]
)

print(response)

答案 2 :(得分:0)

例如,您可以使用SQL函数clientId获取客户端ID。

SELECT clientId() as clientId,* FROM '$aws/events/presence/connected/+

您将能够在消息有效负载中检索它。