Я хочу оформить подписку на сервер GraphQL. Приложение выполняется в сценарии NodeJS (т.е. не в веб-браузере).
Вот что я сейчас делаю:
const fetch = require("node-fetch").default;
const apollo = require("apollo-boost");
const ApolloClient = apollo.default;
const { gql } = require("apollo-server");
const apolloClient = new ApolloClient({
uri: "http://localhost:4000/graphql",
fetch
});
apolloClient.subscribe({
query: gql`
subscription {
startTaskRequested {
pkRobot
taskName
}
}
`,
}).subscribe({
next(x) { console.log(x) },
error(err) { console.log(`Finished with error: ${ err }`) },
complete() { console.log('Finished') }
});
В результате получается:
{ data: { startTaskRequested: null } }
Finished
На сервере GraphQL я вижу, что соответствующий распознаватель никогда не вызывается.
Если я выполняю тот же запрос подписки, используя игровую площадку Apollo, подписка работает, и я получаю ожидаемые результаты: Детская площадка Аполлона
Я уже много часов бьюсь об это головой, и я был бы очень признателен, если бы кто-то мог указать мне правильное направление.