7

我花了最后一天尝试AWS AppSync,我对订阅可以做什么有点失望。在我看来,当前状态AppSync subscription是针对您拥有项目列表并且希望它在所有客户端上同步的用例。

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

因此,如果我正确理解了文档:

  • 我们无法过滤出您要将数据发送给的目标

我有一些用例,比如对 Post 投票之类的突变可能导致仅将不同类型的数据推送给 Post 的所有者。

  • 它必须与特定的突变相关联,并且必须属于同一类型

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

  • 它没有链接到解析器

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

4

1 回答 1

1

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

但关于你的第一个假设:

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

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存储库。

于 2018-09-20T15:52:24.917 回答