Почему моя функция подписки не запущена?

#javascript #amazon-web-services #react-native #iot #publish-subscribe

#javascript #amazon-веб-сервисы #react-native #iot #опубликовать-подписаться

Вопрос:

Я полностью следовал примеру на веб-сайте AWShttps://aws-amplify.github.io/docs/js/pubsub

и независимо от того, что происходит каждый раз, когда я запускаю await PubSub.publish, я не получаю ответа от AWS. Буду признателен за любую помощь. Я получаю тайм-ауты для кода.

Попробуйте различные способы взаимодействия с AWS через MQTT react-native. Искал везде. Никаких примеров этого не используется.

 import Amplify, { PubSub, Auth } from 'aws-amplify';

import { AWSIoTProvider } from '@aws-amplify/pubsub/lib/Providers';

import aws_exports from './src/aws-exports';

// aythentication import
import { withAuthenticator } from 'aws-amplify-react-native';
Amplify.configure(aws_exports);


Amplify.addPluggable(new AWSIoTProvider({
     aws_pubsub_region: 'us-east-1',
     aws_pubsub_endpoint:  'wss://azk3aah4ivg82-ats.iot.us-east-1.amazonaws.com/mqtt',
}));

PubSub.subscribe(['$aws/things/B_Bone_1/shadow/get/accepted', '$aws/things/B_Bone_1/shadow/get/rejected']).subscribe({
    next: data => console.log('Message received get accepted', data),
    error: error => console.error(error),
    close: () => console.log('Done'),
});


//
export default class Main extends React.Component {
//...... sign in stuff This just makes a cognito accound and lets me log in. Its working
}


class App extends Component {
//constuct props 
///...
update = async () => {

    await PubSub.publish('$aws/things/B_Bone_1/shadow/update', {msg: '{"state":{"reported":{"temp": -1}}}' });

    Alert.alert('Update all local values from Device Shadow');
  }


render() {
    return (
    //A page with a button that runs update function
    );
    }}
    
//Stylesheet stuff
      

При вызове обновления программа должна запустить функцию подписки. Но я получаю ошибку тайм-аута, поскольку ничего не возвращается.
Любая помощь была бы замечательной.

Ответ №1:

Вы вошли в VERBOSE?

Amplify.Logger.LOG_LEVEL = 'VERBOSE';

Может быть, вам нужен провайдер?

core.js:6014 ERROR Error: Uncaught (in promise): Error: Could not find provider named [object Object]

Как и я, еще не решена 🙁