【发布时间】:2021-06-30 06:57:18
【问题描述】:
我在我的 react 应用上调用这个 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”,但我不知道现在该做什么。
有人可以调查一下并帮助我吗?
【问题讨论】:
-
我们目前也遇到了这个问题。 MQTT 已在所有新 API 和新区域 (docs.aws.amazon.com/appsync/latest/devguide/…) 上弃用。只是希望 AWS 有更好的库支持!
-
我想您正在使用 aws-appsync (npmjs.com/package/aws-appsync) 包中的 AWSAppSyncClient (github.com/awslabs/aws-mobile-appsync-sdk-js/blob/…)?如果是这样,您使用的是哪个版本的软件包?我建议您更新到最新版本,因为您可能已经过时了。
标签: reactjs amazon-web-services graphql mqtt aws-appsync