当前位置: 首页 > 知识库问答 >
问题:

GraphQL订阅用例

邓焱
2023-03-14

我正在学习如何使用graphql-rubygem在Rails应用程序中实现GraphQL API。我不清楚GraphQL订阅的用例。

我不清楚GraphQL订阅和ActionCable之间的区别。

假设我有一个从GraphQL API获取数据的移动应用程序。

我是否可以直接使用ActionCable将更改发布到移动客户端?如果是,那么为什么要使用GraphQL订阅呢?

共有1个答案

梁存
2023-03-14

如果您喜欢在GraphQL API中集成订阅,那么GraphQL订阅就不适合您。您可以考虑任何您想要实现的实时特性(多人游戏等),您可以在https://github.com/facebook/GraphQL/blob/master/rfcs/subscrimtions.md上阅读更多关于GraphQL订阅的背景信息。

GraphQL订阅和ActionCable之间的区别。GraphQL订阅可以集成到GraphQL API中。在RoR中使用ActionCable来帮助开发人员创建RoR中可能的实时特性。正如在http://graphql-ruby.org/subscriptions/action_cable_implementation.html中提到的,ActionCable可以用作在Rails5+上交付GraphQL订阅的平台。

关于你的最后一个问题,你说的移动应用程序是什么意思?你是说原生应用吗?或者你是说一个基于网络的应用程序?对于原生应用程序,这可能取决于您的实现和使用的库。如果您指的是web应用程序,您可以使用Relay Modern或Apollo client之类的工具来处理订阅,如指南中所述。您可以使用ActionCable前端设置连接。您可以在http://graphql-ruby.org/guides中找到有关订阅的所有信息。

 类似资料:
  • 我在Apollo中的GraphQL订阅遇到了麻烦。我想订阅关于主题的添加“透视图”(基本上是在帖子上添加评论),我很确定我已经正确地设置了服务器。客户才是给我带来麻烦的人。(如果这个问题看起来很熟悉,我以前问过它,以为我得到了答案,但没有去)。下面是我的订阅模式: 我也正确地连接了客户端,因为在我的终端中,我看到了“WebSocket connection Selected”消息。我被难倒的部分是

  • 我按照Apollo的文档在客户端和服务器上设置GraphQL订阅,虽然我已经完成了90%,但我不知道如何设置订阅通道以及如何将突变连接到这些通道,以便每当突变发生时,服务器都会将新数据推送到客户端。(对于内容,我正在制作一个Reddit克隆,人们可以在其中发布主题,其他人可以对其发表评论。所以当你看到“Topics”或“TopicList”时,把它们想象成帖子。) 到目前为止,我已经成功地为订阅设

  • 在客户端使用apollo-link,在服务器上使用apollo-server-express中的PubSub。在与GraphQL API交谈的摩卡测试中得到奇怪的结果: 摩卡: 服务器: 以下是我(从测试中)看到的情况: 收到的数据:1545013826838,{“errors”:[{“message”:“对于不可为null的字段订阅,无法返回null。info。”,。。。 (来自服务器): 订阅

  • 如何使用 Graphql SPQR 库实现 GraphQL 的订阅功能?

  • 我尝试使用Vertx HttpClient/WebClient来使用GraphQL订阅,但没有按预期工作。 与服务器端相关的代码(使用Vertx Web GraphQL编写)如下所示,添加注释后,触发onNext将注释发送到发布者。 在客户端中,我混合使用HttpClient/WebClient,大多数时候,我想使用WebClient,它更容易处理表单帖子。但它似乎没有连接。 所以websocke