У нас большие проблемы с подписками с аргументами
чтобы упростить проблему. Вот шаги, чтобы воспроизвести
создать 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")
}
Больше не работает. :(
Любая помощь приветствуется.





Подписки требуют, чтобы параметр, по которому вы выполняете фильтрацию, был в ответе на мутацию. Не могли бы вы попробовать обновить свою мутацию до этого?
mutation mut{
testSubMutation(param:"123") {
param
}
}
Можете ли вы подписаться на изменения в базе данных, которые были сделаны через графический интерфейс DynamoDB, а не на мутацию GraphQL?
@hgale Я так не думаю, потому что AppSync и Dyanmo - две разные системы. AppSync не знает и не заботится о том, обрабатываются ли запросы конечной точкой Dynamo, Lambda или чем-то еще. Вы можете подключиться к динамо-потоку, чтобы таблица срабатывала при изменении таблицы, и использовать это для отправки в браузер сообщения веб-сокета, отличного от AppSync. Но что касается AppSync, он просто видит входящие и исходящие запросы без особой информации о том, как они решаются ниже.
Извините за медлительность, я пропустил ваш вопрос, @hgale. Хобер прав.
Вау ... Это так глупо. И, как упоминал @Rax Wunter, я не нашел этого в документации.
Я делаю то же самое для подписки, но не получаю ответа, работает только с одним аргументом 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
}
}
}
Это где-то в документации написано? Он действительно работает отлично, но немного странно, что реакция на мутацию зависит от ее аргументов.