【发布时间】:2020-06-23 16:39:26
【问题描述】:
我想订阅 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 Server 上,我可以看到从未调用过相应的解析器。
如果我使用 Apollo 的 Playground 进行相同的订阅查询,则订阅有效并且我得到了我期望的结果:Apollo Playground
我已经为此纠结了好几个小时,如果有人能指出我正确的方向,我将不胜感激。
【问题讨论】:
标签: node.js graphql apollo apollo-client graphql-subscriptions