由于 MQTT 错误,AWS App Sync 订阅不起作用
Posted
技术标签:
【中文标题】由于 MQTT 错误,AWS App Sync 订阅不起作用【英文标题】:AWS App Sync Subscriptions not working because of MQTT error 【发布时间】: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/…)?如果是这样,您使用的是哪个版本的软件包?我建议您更新到最新版本,因为您可能已经过时了。 【参考方案1】:我不确定您是否找到了答案,但我们在一个项目中面临同样的问题,它要求您使用可以通过纯 WebSockets 处理订阅的 GraphQL 客户端。请参阅this question 关于使用 AWS AppSync 客户端的答案。
【讨论】:
以上是关于由于 MQTT 错误,AWS App Sync 订阅不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用 AWS Amplify 和 App Sync 与使用 Mongodb 的现有节点服务器
如何在 graphQL 中编写 JOIN 或从多种类型中获取结果 - AWS App sync iOS
AWS IOT MQTT:在 chrome 中出现错误 ERR_CERT_SYMANTEC_LEGACY
AWS S3 Sync - 结算报表GetObject(拒绝访问)