我正在尝试使用带有graphql-ruby
gem的ActionCable来实现GraphQL订阅。
我从此中发现,需要创建GraphQL通道,客户端需要订阅该通道。通常,在ActionCable中,我们将在stream_from
操作中subscribed
所需的频道。但是,链接中的示例指定了带有参数的execute
方法。该方法何时执行?
此外,link声明See Apollo Client or Relay Modern
供客户端使用。是必须使用其中之一吗?还是可以使用coffeescript来订阅和更新UI?
答案 0 :(得分:1)
对于不确定理解GraphQL如何与ActionCable配合使用的任何人,不确定是否已经解决了问题。我已经建立了一个示例存储库,并将尝试更新文档以使其更好。
https://github.com/bidluo/GraphQL-ActionCableSubscriptions
要回答您的问题,在发送消息时,execute就像其他任何ActionCable动作一样,要调用它,您将执行以下操作,其中数据包含所有内容,而查询实际上是GraphQL的唯一位。
{
"command":"message",
"identifier":"{\"channel\":\"GraphqlChannel\"}",
"data":"{ \"query\": \"subscription { newMessage { content } }\", \"variables\": null, \"action\": \"execute\" }"
}
但是您需要确保先订阅频道:
{
"command":"subscribe",
"identifier":"{\"channel\":\"GraphqlChannel\"}"
}