首页 > 解决方案 > 由于 MQTT 错误,AWS App Sync 订阅不起作用

问题描述

我在我的反应应用程序上调用这个 graphql 订阅:

export const OnCreateMessage = `
  subscription OnCreateMessage($conversationId: ID!) {
    onCreateMessage(messageConversationId: $conversationId) {
      id
      content
      authorId
      messageConversationId
      createdAt
    }
  }
`

这就是我在类组件中调用它的方式:

API.graphql(
    graphqlOperation(subscriptions.OnCreateMessage, {conversationId: "c074c7b7-f6db-459a-a1d8-cd290aee33ea"})
  ).subscribe({
    next: ({ provider, value }) => console.log({provider, value}),
    error: error => console.warn("did not get messages")
});

但是,当我运行我的应用程序并调用它时,我在网络选项卡上收到此错误:

{
  "errors" : [ {
    "errorType" : "BadRequestException",
    "message" : "Subscriptions over MQTT is not supported."
  } ]
}

我在 AWS 文档中看到“MQTT over WebSockets 将不再适用于新的 AppSync API”,但我不知道现在该做什么。

有人可以调查一下并帮助我吗?

标签: reactjsamazon-web-servicesgraphqlmqttaws-appsync

解决方案


我不确定您是否找到了答案,但我们在一个项目中面临同样的问题,它要求您使用可以通过纯 WebSockets 处理订阅的 GraphQL 客户端。请参阅有关使用 AWS AppSync 客户端的问题的答案。


推荐阅读