Yas*_*ela 4 javascript iot react-native aws-iot
我正在使用 React Native 构建 IoT 应用程序。用过这个包
https://github.com/aws/aws-iot-device-sdk-js
但在运行应用程序时出错
import React, {Component} from 'react';
import {Platform,
StyleSheet,
Text,
View,
TextInput,
TouchableOpacity,
StatusBar,
} from 'react-native';
import AwsIot from 'aws-iot-device-sdk'
export default class App extends Component {
constructor(props){
super(props)
this.connectToIoT()
}
connectToIoT(){
var device = AwsIot.device({
keyPath:'1d8bea736f-private.pem.key',
certPath: '1d8bea736f-certificate.pem.crt',
caPath: 'AmazonRootCA1.pem',
clientId: 'IoTcloud',
host: 'a3ckca0x6pesml.iot.ap-northeast-2.amazonaws.com'
});
console.log(device)
device
.on('connect', function() {
console.log('connect');
});
device
.on('message', function(topic, payload) {
console.log('message', topic, payload.toString());
});
}
}
Run Code Online (Sandbox Code Playgroud)
这里我在打开应用程序时调用了这个函数 connectToIoT..keyPath、certPath、caPath 文件存储在项目的根目录中
如何摆脱这个错误并将我的设备连接到 aws-iot ???
已经从堆栈中遵循此解决方案如何在 React-Native 中实现 AWS IoT(设备)?
但仍然卡在这个错误上
import Aws from 'aws-sdk/dist/aws-sdk-react-native'
import AwsIot from 'aws-iot-device-sdk'
AWS_REGION = 'us-east-1' // Change if needed.
AWS_COGNITO_IDENTITY_POOL = 'us-east-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
// Fill in.
AWS_IOT_ENDPOINT = 'XXXXXXXXXXXXX.iot.us-east-1.amazonaws.com' // Fill in.
Aws.config.region = AWS_REGION
Aws.config.credentials = new Aws.CognitoIdentityCredentials({
IdentityPoolId: AWS_COGNITO_IDENTITY_POOL
})
Aws.config.credentials.get(() => {
const config = {}
let client
config.host = AWS_IOT_ENDPOINT
config.protocol = 'wss'
config.clientId = `client-${Math.floor((Math.random() * 100000) + 1)}`
config.accessKeyId = Aws.config.credentials.accessKeyId
config.secretKey = Aws.config.credentials.secretAccessKey
config.sessionToken = Aws.config.credentials.sessionToken
client = AwsIot.device(config)
client.on('connect', () => {
client.subscribe('some_topic')
})
client.on('message', (topic, message) => {
console.log(topic, message)
})
client.on('error', error => {
console.log(error)
})
})
Run Code Online (Sandbox Code Playgroud)
不要使用您尝试连接物联网设备的证书,使用“基于 WebSocket 协议的 MQTT”或 https://github.com/aws/aws-iot-device-sdk-js/issues/86#issuecomment -371159865
归档时间: |
|
查看次数: |
1140 次 |
最近记录: |