2

我正在尝试使用带有graphql-rubygem 的 ActionCable 来实现 GraphQL 订阅。

我从这个链接中发现需要创建客户端需要订阅的 GraphQL 通道。通常,在 ActionCable 中,我们将在动作stream_from中需要通道。subscribed但是,链接中的示例指定了一个execute带参数的方法。这个方法什么时候执行?

此外,文档说明See Apollo Client or Relay Modern了客户使用情况。是否必须使用其中任何一种,或者我可以使用咖啡脚本来订阅和更新 UI?

4

1 回答 1

4

不确定您是否已经解决了您的问题,但对于任何难以理解 GraphQL 如何与 ActionCable 一起使用的人。我已经建立了一个示例存储库,并将尝试更新文档以使其更好。

https://github.com/bidluo/GraphQL-ActionCableSubscriptions

要回答您的问题,执行就像发送消息时的任何其他 ActionCable 操作一样,因此要调用它,您将执行以下操作,其中数据包含所有内容,而查询实际上是 GraphQL 的唯一部分。

{
   "command":"message",
   "identifier":"{\"channel\":\"GraphqlChannel\"}",
   "data":"{ \"query\": \"subscription { newMessage { content } }\", \"variables\": null, \"action\": \"execute\" }"
}

但是您需要先确保您订阅了该频道:

{
   "command":"subscribe",
   "identifier":"{\"channel\":\"GraphqlChannel\"}"
}
于 2019-06-26T04:18:37.493 回答