如何从aws-iot-device-sdk获取连接状态

问题描述 投票:0回答:3

如何检查客户端是否已连接?

从Device类示例中,我了解到Device是mqtt.Client()返回的实例 mqtt.js有一个连接旗帜https://github.com/mqttjs/MQTT.js#connected

然而,device.connected给了我undefined

aws-sdk mqtt aws-iot
3个回答
1
投票

我找到了获取当前状态的技巧要监视该状态之后,您应该使用先前答案中建议的设备连接主题如果您启用了Fleet索引设置,请确保启用“Thing Connectivity”:在您的Thing中包含事物连接数据指数。

然后,您可以运行搜索(针对特定事物或一组事物)并获取每个事物的连接状态:

`    AWS = require('aws-sdk');
     var iot = new this.AWS.Iot({
                    accessKeyId: this.AccessKeyId,   
                    secretAccessKey: this.SecretAccessKey,
                    //endpoint: this.host,
                    maxResults: 500,
                    region: this.regionData
                    }); 
    var params = {
              queryString: 'shadow.reported.isConnected.connected = *', 
              indexName: 'AWS_Things',
              nextToken: nexttoken 
            };
    iot.searchIndex(params, function(err, data)
    for (const robot of data.things[0])
        connectivity = robot.connectivity.connected;`

注意 - 上面的代码不是一个有效的例子,只是为了显示原则Note2 - 记住搜索结果出现在页面中并且需要以这种方式处理


0
投票

因为它不在那里。

DeviceClient {
  publish: [Function],
  subscribe: [Function],
  unsubscribe: [Function],
  end: [Function],
  handleMessage: [Function: bound ],
  updateWebSocketCredentials: [Function],
  getWebsocketHeaders: [Function],
  updateCustomAuthHeaders: [Function],
  simulateNetworkFailure: [Function],
  _events: 
   { connect: [Function],
     close: [Function],
     reconnect: [Function],
     offline: [Function],
     error: [Function],
     message: [Function] },
  _eventsCount: 6 }

虽然您可以收听“连接”事件并自行添加“已连接”属性,如下所示

device.on('connect', function() {
   device.connected = true;
});

再次检查DeviceClient,现在就可以了。

DeviceClient {
  publish: [Function],
  subscribe: [Function],
  unsubscribe: [Function],
  end: [Function],
  handleMessage: [Function: bound ],
  updateWebSocketCredentials: [Function],
  getWebsocketHeaders: [Function],
  updateCustomAuthHeaders: [Function],
  simulateNetworkFailure: [Function],
  _events: 
   { connect: [Function],
     close: [Function],
     reconnect: [Function],
     offline: [Function],
     error: [Function],
     message: [Function] },
  _eventsCount: 6,
  connected: true }

0
投票

在IoT规则引擎中创建规则并监听生命周期事件。设备连接主题将在连接IoT设备时收到消息。

https://docs.aws.amazon.com/iot/latest/developerguide/life-cycle-events.html

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.