问题标签 [graphql-subscriptions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - How can I implement apollographql client into the maven project to activate subscription?
I am trying to create a graphql client in Java project and I am using apollographql library. The problem is that I am not able to get the dependencies using the pom.xml with version different than from Central repository. The other thing is that all of the examples are built with Gradle. Do you have any examples or ideas about how to create a simple subscription client using apollo library and maven project? One of the specific issues that I have is that once apollographql-runtime library is downloaded there is no "subscription" package. I wanted to use this dependency:
#xA;but I am not able to download it using pom.xml. In a different project, it was working with gradle.build file.
tried download .jar file but still no "subscription" package available.
pom.xml
#xA;I want to import this class:
#xA;Could not resolve dependencies for project com.brzozaxd.rbpvendor2:rbpvendor2:jar:1.0-SNAPSHOT: The following artifacts could not be resolved: com.apollographql.apollo:apollo-api:jar:1.0.0-alpha5
javascript - 如何正确使用 GraphQL 订阅?
我有一个 GraphQL 驱动的应用程序。查询和变异部分运行良好。我尝试添加 GraphQL 订阅。
服务器 GraphQL 订阅部分代码的灵感来自apollographql/subscriptions-transport-ws自述文件中的演示。
另请查看代码中的注释以获取更多详细信息。
我正在使用Altair GraphQL Client进行测试,因为它支持 GraphQL 订阅。
如屏幕截图所示,每次数据库中的数据发生变化时,它都会获取新数据。
但是,meChanged
它null
不会抛出任何错误。任何想法?谢谢
apollo - 通过 apollo 连接到 graphql-yoga 服务器进行订阅的正确方法是什么?
阿波罗客户端:2.6.3
阿波罗链接-http:1.5.15
阿波罗链接-ws:1.0.18
订阅-传输-ws:0.9.16
所以我有一个前端(节点)服务器,它连接到后端(graphql-yoga)服务器,如下所示:
查询和变异解析器被正确触发,但订阅解析器没有被触发。我假设那是因为我没有直接连接到 graphql-yoga。但是,如果我将 WebSocketLink uri 更改ws://localhost:4000
为此会导致:
failed: Error during WebSocket handshake: Unexpected response code: 200
要发出的错误消息。
graphql-yoga 服务器本身与 prisma 建立订阅连接,如下所示:
我的订阅解析器如下:
如果我在操场上运行以下订阅:
并通过我的网站触发订单突变,显示正确的数据结果集:
但是订阅解析器没有被订阅调用操作:
我该如何解决这个问题?
graphql - 如何在 graphql 游乐场上运行 Appsync 订阅
我已经使用 appsync 服务在 aws 上部署了 graphql API。我可以在亚马逊控制台上运行查询、变异和订阅,但是当我尝试在任何 graphql 游乐场上测试订阅时,它会显示错误。
我已经使用无服务器 graphql-playground命令为 AppSync 运行 Playground。
如何在 graphql 游乐场上运行 appsync 订阅?
reactjs - Graphql 订阅无法正常工作
我正在使用带有 react 客户端的 graphql 订阅节点服务器开发实时个人房间聊天应用程序。当我尝试连续与两到三个聊天室聊天时,它没有响应。当我刷新页面时,它运行良好,订阅运行良好。我在这里找不到问题..任何人都可以帮我解决这个问题
laravel - 使用订阅时,laravel-graphql-playground 无法连接到 UI 中的 websocket
我目前使用 Lighthouse 作为 laravel 的 graphql 服务器。我已经阅读了他们网站上的订阅文档(https://lighthouse-php.com/master/subscriptions/getting-started.html),并将适当的推送器凭据添加到 .env 文件中。
尝试通过 graphql-playground UI 订阅时,出现以下错误:
订阅:
错误:
所有突变和查询都在正常工作。
我已经覆盖了 laravel-graphql-playground laravel 的 index.blade.php 文件,并且可以向该文件添加一个“subscriptionEndpoint”变量,但不清楚该变量应该包含什么。
由于我通过推送器连接,有谁知道“subscriptionEndpoint”变量中应该包含什么?
graphql - 如何从后端消息队列应用程序触发 GraphQL 订阅
目前,每当有新数据传入时,我正在使用 Socket.io / SignalR 从我的后端消息队列系统发出一个事件。这样我就可以在我的 React 应用程序中设置一个事件处理程序,并从事件处理程序中更新中继缓存。
它似乎不是最 Graphql ish 做事的方式,所以我玩了一下 RFC 之前的实时查询实现,您观察到响应式数据存储中的数据更改将其推送到 graphql 服务器,并进一步推送到客户端使用 websockets ......带有一些相当复杂的自定义代码......显然graphql 还没有准备好进行实时查询(不是轮询)
再往下几行说:
在构建基于事件的订阅时,确定什么应该触发事件的问题很容易,因为事件明确定义了这一点。事实证明,在现有消息队列系统上实现它也相当简单。
这引出了我的问题。当一个新事件传入您的后端消息队列应用程序并且您需要在 ui 中实时反映这些新数据时,您如何(以 graphql 方式)最好地触发 graphql 订阅 - 比如说每秒?我不是在谈论在前端/客户端中触发事件或像您在谈论订阅时通常看到的那样每隔 x 秒轮询一次。
不确定它是否相关,但我使用 Relay Modern 作为我首选的 graphql 客户端。
如果我得到一点帮助来了解如何在没有突变的情况下触发/调用订阅,这里有一些想法可能会奏效。
后端工作人员/消息队列“A”接收带有一些设备数据的新传入事件。它使用 SignalR 或其他 pubsub (redis/socket.io/?) 通知 graphql 服务器“B”(订阅事件)有新事件发生。然后,graphql 服务器触发/执行订阅,前端反应中继应用程序“C”自动更新,因为它定义了中继订阅。这将是理想的,对吧?但是如何在graphql服务器上触发订阅?
只需使用 Socket.io/SignalR 从后端工作人员/消息队列“A”对传入数据发出事件,订阅并处理前端“B”中的事件,然后从 Socket.io/SignalR 事件中以编程方式调用订阅处理程序(如果这样的话,直接调用订阅,甚至是可能的?)。但是,使用订阅而不是纯 Socket.io/SignalR 的唯一改进是我已将中继缓存/存储的更新从处理程序移至订阅。如果有的话,也不是很大的改进。但是缓存/存储的手动更新确实很麻烦,虽然不是那么难:/
人们如何使用信号器处理实时流式传输(设备)数据,为什么所有实时文章/示例都只是重复相同的旧简单聊天应用程序,其中用户界面只是在用户进行点击事件后更新?graphql 是否还不适合实时处理频繁传入的设备数据流?我明白为什么实时查询在自己实现它们之后被延迟了,但是没有它们,实时数据更新并将其从服务器推送到前端?
node.js - Apollo GraphQL:MQTT 订阅代理以仅提供已发布的数据
设想
我有一个传感器节点,它发布有关特定 MQTT 主题的信息(发送到 Mosquitto 代理)。发送的数据是纯字符串。
后端
目前我正在使用apollo-server-express
构建 GraphQL 服务器。我希望使用`graphql-mqtt-subscriptions来:
- 订阅 MQTT 代理
- 阅读特定主题的信息并将其返回到
graphiql
UI
dependencies
代码片段
入口点server.js
代码:
typeDefs
GraphQL的架构如下:
wheresiteAdded(topic: String)
将获取 MQTT 需要订阅的主题。例子:
resolvers.js
如下所示(如可能文档中所述):
推理
被调用但之后console.log
出现args.topic
以下错误graphiql
:
如果我执行return pubsub.asyncIterator()
:
它提供来自 Broker 的及时数据,但输出为null
:
我根据Apollo Docsserver.js
在上面添加了 Websockets 中间件
我在哪里出错以及如何将来自订阅主题的数据添加到graphiql
?