AppSync 的订阅是否仅限于一种特定用例?

Are AppSync's subscriptions very limited to one specific use case?

我花了最后一天时间尝试 AWS AppSync 我对订阅的功能有点失望。 在我看来,AppSync subscription 的当前状态适用于您拥有项目列表并希望它在所有客户端上同步的用例。

apollo-subscription 相比,它非常有限。

所以如果我正确理解文档:

我有这样的用例,在 Post 上投票等突变可能导致将不同类型的数据仅推送给 Post 的所有者。

我有一些用例,其中突变甚至查询都可能导致向正在侦听事件的特定目标发送推送。

如果我错了,你能纠正我吗?

正如您已经知道的那样,结果必须与突变的结果相同,并且您不能 link 将突变转换为解析器。

但是关于你的第一个假设:

可以过滤突变的结果。 例如,如果您有以下突变:

type Mutation {
  addPost(input: PostAddInput!): Post!
}

input PostAddInput {
  text: String!
  author: ID!
}

您可以通过此订阅将变异结果发布给特定用户:

type Subscription {
  addedPost(author_id: ID!): Post!
    @aws_subscribe(mutations: ["addPost"])
}

现在只有变异的 author_id 与订阅的 author_id 相匹配时,您才会收到结果。

我还在 GitHub 上创建了一个 AppSync RDS repository,如果你想自己尝试的话。