我使用的是Apollo graphql框架,似乎正在启动和运行订阅。但我无法从订阅中获取任何触发的事件,而且围绕Apollo客户端的文档很少涉及纯nodejs和vanilla javascript。
该项目正在为node-red制作一些节点,它将使用供应商的graphql接口来获取不同的电力消耗和电价数据。为此,我还需要使用订阅。这是graphql的新手,被推荐为apollo框架。
result = tibber.getSubscription('subscription{ liveMeasurement(homeId:"c70dcbe5-4485-4821-933d-a8a86452737b"){timestamp power maxPower accumulatedConsumption accumulatedCost}}');
// returns an Observable from the apollo client subscribe()
// client.subscribe({ query: gql`${query}` });
let sub = result.subscribe({
next (data) { console.log(data); },
error (err) { console.log(err); }
});
我本以为console.log会在几秒钟后触发一些数据,因为此订阅与供应商的api explorer上的演示帐户一起工作。未返回错误,并且订阅对象(sub)处于“就绪”状态。
发布于 2019-06-03 01:00:24
我的建议:分而治之,征服
我会从使用apollo客户端的标准react应用程序开始。为了简单起见,您可以使用<Query/>
组件。在这一步中,最重要的是熟悉authentication
下一步:直接使用客户端,不使用组件。仍在使用react use ApolloConsumer -您的组件可以访问client
prop。您可以使用从componentDidMount()
(console.log
,setState
)调用的client.query()
。
如果你更喜欢香草,this tutorial可能更合适。
下一步将是与subscriptions合作。同样,从<Subscription/>
组件开始。在此之后,您应该已经正确配置了客户端(传输、身份验证)。
在此步骤中,您将开始移动到节点env,f.e。寻找像this这样的例子,并结合早期获得的知识。
https://stackoverflow.com/questions/56407617
复制相似问题