0

我无法使用 AWS Amplify pubsub 库成功订阅主题。我检查了权限,授予管理员访问 IoT 策略和 cognito auth-role 策略的权限。基本上遵循了本教程的所有步骤[1],除了为简单起见稍微更改代码

import { withAuthenticator } from '@aws-amplify/ui-react';
import '@aws-amplify/ui-react/styles.css';
import { PubSub } from 'aws-amplify';
import { AWSIoTProvider } from '@aws-amplify/pubsub/lib/Providers';
import awsExports from './aws-exports';
Amplify.configure(awsExports);


var SUB_TOPIC = "esp32/pub";

// Apply plugin with configuration
Amplify.addPluggable(new AWSIoTProvider({
  aws_pubsub_region: 'us-east-2',
  aws_pubsub_endpoint: 'wss://al3qigg2b1mxp67.iot.us-east-2.amazonaws.com/mqtt',
}));
Auth.currentCredentials().then((info) => {
  const cognitoIdentityId = info.identityId;
  console.log(cognitoIdentityId)
});
function App({ signOut, user }) {
  subscribe();
  return (
    <>
      <h1>Hello {user.username}</h1>
      <button onClick={signOut}>Sign out</button>
    </>
  );
}
function subscribe() {
  console.log("subscribing...")
  PubSub.subscribe(SUB_TOPIC).subscribe({
    next: data => console.log(data),
    error: error => console.error(error),
    close: () => console.log('Done'),
  });
}
export default withAuthenticator(App);

请注意,awsconfig 中的凭据是正确的。

最奇怪的是,不管我写错了,结果还是一样,编译没有错误,浏览器控制台也没有错误。另外,即使我在 Amplify.AddPluggable 方法中更改为完全错误的凭据,也没有任何变化同样,没有任何错误 [1]:https ://github.com/aws-samples/aws-end-to-end-iot-amplify-demo#video-guide

4

0 回答 0