带参数的appsync订阅

时间:2018-07-30 21:08:17

标签: amazon-web-services graphql subscription aws-appsync

我们在带参数订阅方面遇到了很大的麻烦

简化问题,以下是重现步骤

创建一个simpleSchema

type Mutation {
    testSubMutation(param: String!): String
}

type Query {
    testQuery: String
}

type Subscription {
    testSubs(param: String): String
        @aws_subscribe(mutations: ["testSubMutation"])
}

我在突变体上附加了一个本地解析器,该突变体会返回时间戳。

在一个窗口中打开应用同步查询标签并进行订阅

subscription sub{
  testSubs
}

在另一个窗口中进行突变

mutation mut{
  testSubMutation(param:"123")
}

像魅力一样工作

现在更改订阅以监听参数

subscription sub{
  testSubs(param:"123")
}

不再起作用。 :(

感谢您的帮助。

2 个答案:

答案 0 :(得分:6)

订阅需要您过滤的参数才能响应突变。您可以尝试将您的突变更新为此吗?

mutation mut{
  testSubMutation(param:"123") {
    param
  }
}

答案 1 :(得分:1)

我正在做与上面相同的订阅,但没有得到响应,它仅使用一个参数room

mutation addMessage {
  addMessage(input: { 
  room: "45a87f5b-ef9e-41cd-9cd7-f3e2f4946d31", 
  receiver: "3cea9c02-1cf5-4248-8ebe-3580a7a47b8b" }) {
   id
   room
   receiver {
    id
    userName
   }
  }
 }

subscription roomMessage {
  roomMessage(room: "45a87f5b-ef9e-41cd-9cd7-f3e2f4946d31", 
  receiver: "3cea9c02-1cf5-4248-8ebe-3580a7a47b8b") {
    id
    room
    receiver {
      id
      userName
    }
  }
}