我使用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?
答案 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/+
您将能够在消息有效负载中检索它。