如何动态更改 Apollo Web Socket Link URI?

2024-03-01

目前我已经设置了 Apollo websocket 链接,如下所示:

const wsLink = new WebSocketLink({
  uri: `ws://example.com/graphql?token=${getToken()}`,
  options: {
    reconnect: true,
    connectionParams(): ConnectionParams {
      return {
        authToken: getToken(),
      };
    },
  },
});

当连接持续时,此方法可以正常工作,但如果查询字符串中的令牌已过期,则需要重新建立连接时,此方法会失败。

我正在处理的基础设施的设置方式要求将此标记设置为 URI 中的查询参数。如何动态更改 URI,以便在需要重新建立连接时提供新令牌?


可以设置属性wsLink.subscriptionClient.url在函数中手动(或创建一个新的 subscriptionClient 实例?)设置上下文 https://www.apollographql.com/docs/link/links/context/ https://www.apollographql.com/docs/link/links/context/.

例如:

import { setContext } from 'apollo-link-context'
...

    const wsLink = your code...     

    const authLink = setContext(() => {
        wsLink.subscriptionClient.url = `ws://example.com/graphql?token=${getToken()}`
    })

    ...

    const config = {
        link: ApolloLink.from([
            authLink,
            wsLink
        ]),
        ...
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何动态更改 Apollo Web Socket Link URI? 的相关文章

  • 为什么我们需要“cacheRedirects”?

    我阅读了文档与缓存数据交互 https www apollographql com docs react caching cache interaction cache redirects with cacheredirects虽然我明白如
  • 如何在apollo链接中返回错误响应?

    我在模式拼接中使用阿波罗链接作为访问控制层 我不太确定如果用户没有访问特定操作的权限 如何使链接返回错误响应 我知道这样的包graphql shield and graphql middleware但我很好奇是否可以使用 apollo li
  • 如何在 Apollo 客户端中使用没有 JSX 组件的 client.query?

    我正在尝试使用 React 在 Apollo 客户端中进行查询 而不返回 JSX 组件 只是一个对象 data对 Apollo 服务器进行公共查询时收到的对象 我尝试使用
  • Apollo / GraphQl - 类型必须是输入类型

    向大家致以我正在学习的过程 并将 Apollo 和 graphQL 集成到我的一个项目中 到目前为止一切顺利 但现在我正在尝试进行一些突变 并且在输入类型和查询类型方面遇到了困难 我觉得事情比应有的复杂得多 因此我正在寻求有关如何处理我的情
  • 单个组件中的多个使用查询

    我无法通过使用 useQuery 以下面提到的方式获取数据 const data data1 useQuery Get Doctor const loading error data useQuery GET Branch 事实上你可以使用
  • 使用react-apollo自定义输入类型

    我正在尝试执行需要客户端上的自定义输入类型的突变查询 目前它看起来像这样 import graphql from react apollo const graphQuery graphql gql input UserSignUpInput
  • client.watchQuery 无法在 fetchPolicy 设置为“standby”的情况下调用——useLazyQuery 加载页面时抛出错误

    我有一个用 tsx 编写的页面 在加载时不断崩溃并出现错误client watchQuery cannot be called with fetchPolicy set to standby 即使有问题的查询是 useLazyQuery 因
  • API网关和微服务通信

    我正在构建微服务架构 我需要沟通方面的帮助 API 网关与服务通信的最佳方法是什么 我的 API 网关将是graphql apollo服务器和服务将是REST APIs 我应该使用 REST 与服务或某些消息系统进行通信吗RabbitMQ
  • Prisma2:如何用 Paljs 解决 n+1 问题

    感谢您的帮助 我在前端使用阿波罗客户端 在后端使用graphql nexus https nexusjs org docs prisma2 和 graphql yoga 服务器 我想用 paljs plugins 解决n 1 问题 在前端我
  • 触发 Apollo 查询并导致 URL 更改时 useContext 重新渲染

    发生重新渲染的 GIF https gyazo com 20ba4879eacba9f9027886937fe723f0 我不知道如何继续 正如您所看到的 标头的状态 通过上下文传递 正在从用户的数据 gt 未定义 gt 同一用户的数据切换
  • Apollo graphQL 中 useQuery 和 useLazyQuery 有什么区别?

    我正在浏览 Apollo React hooks 的文档 并看到有两个查询钩子可供使用 其中是useQuery and useLazyQuery 我正在读这一页 https www apollographql com docs react
  • 如何在 Jest 测试中处理 .gql 文件导入

    我正在尝试测试一个导入的组件 gql文件 当我尝试在 Jest 文件中构建组件时 收到以下错误 object anonymous function module exports require dirname filename global
  • 最大 MQTT 连接数

    我需要创建一个服务器场 可以处理 5 100 万个连接 5 00000 个主题 每个客户端一个 每秒处理 300k 消息 我尝试了解各种消息代理的功能 因此我目前使用两个 RHEL EC2 实例 r3 4xlarge 来获取大量可用资源 所
  • 如何强制 Apollo Client 使用缓存数据

    我们有一个最初加载小部件列表的应用程序 query Widgets widgets Widgets fragment Widgets on Widgets name description rootWidget widgets Widget
  • Android 版 Apollo GraphQL 中的重复对象类型

    在我的项目 GraphQL 架构中 对象AllowedPeriod 这只是两个字段startsAt endsAt 可以到达图形的不同对象内 生成查询时 apollo 会为每个查询创建一个新类型
  • 错误:尝试解析模块 @apollo/client React Native 时

    安装新版本的 apollo 客户端后出现此错误 我尝试了其他版本并降级但没有任何结果 我还尝试在 Metro config js 中指定解析 cjs 类型的文件 apollo client main cjs 但什么也没有 Error err
  • Reactjs/Apollo/AppSync 突变触发两次

    我遇到了 React Apollo AppSync 的问题 突变触发了两次 或多次 我有一个 React 应用程序 它有一个由通常的 UI 按钮 onClick 触发的更新突变
  • Apollo 3 分页与字段策略

    有人可以提供使用 Apollo Client 3 0 字段策略实现分页的示例吗 我一直在遵循文档中的示例来实现无限滚动 但在我的控制台中我收到以下警告 The updateQuery callback for fetchMore is de
  • React 自定义挂钩内的 Apollo GraphQL 查询

    我正在尝试列出 Rick Morty API 中的所有角色 我编写了以下钩子以在我的组件中使用 该组件将呈现结果 当我对值进行硬编码时 例如 page 1 filter name Rick 查询运行得很好 如果我尝试使用变量 它会返回错误
  • Apollo 无法在更新中访问 queryVariables:突变后

    我正在尝试使用 update 在执行突变后更新查询 问题是商店中的查询应用了多个不同的变量 我想更新查询并使用相同的变量返回它 我在文档中发现 updateQueries 有一个包含 queryVariables 的选项 它们是执行查询时使

随机推荐

  • 在 WebSocketContext 中正确处置 WebSocket

    在 ASP NET 中 当您提供的处理程序HttpContext AcceptWebSocketRequest http msdn microsoft com en us library system web httpcontext acc
  • 将除一个目录之外的整个站点重定向到新站点 - apache .htaccess

    我正在尝试将当前站点移至新域 一个目录除外 Example 当前站点 oldsite olddomain example 新站点 新域名 example 所以我知道我可以创建一个 htaccess 重定向条目来执行此操作 并且它有效 但我想
  • 为什么要避免在 java 中使用 Runtime.exec() ?

    Process p Runtime getRuntime exec command is p getInputStream byte userbytes new byte 1024 is read userbytes 我想从 java 在
  • Teradata 优化器 SQL 中的 Equal 与 Like

    我目前正在尝试优化一些 bobj 报告 其中我们的后端是 Teradata 这Teradata优化器看起来很挑剔 我想知道是否有人想出了一个解决方案或解决方法让优化器以类似的方式对待喜欢的人 My issue is that we allo
  • VMWare vFabric tc Server 和 maven 找不到 org.springframework.web.servlet.DispatcherServlet

    我知道以前发布过一个与此非常相似的问题 但该解决方案不适用于我的问题 我正在尝试使用 Maven 启动一个基本的 Spring 项目 这是我的 pom xml
  • Pandas to_sql 不适用于 SQL Alchemy 连接

    我使用以下代码通过 SQL alchemy 连接到 MySQL 数据库 from sqlalchemy import create engine import pandas as pd query SELECT FROM hello eng
  • Java Swing - 本地化温度

    有没有办法在Java中本地化温度 就像温度格式将基于区域设置 例如 对于挪威语 温度格式应为 14 C 度数符号之前应该有一个空格 但其他语言应该是14 C 以下示例演示了温度本地化 包括按区域设置特定属性对十进制值进行可自定义的舍入和格式
  • 覆盖 PHPDoc 中的返回类型

    我有课Abcwith 方法 正文并不重要 return SomeBaseClass function getAll 在幼儿班Abc called AbcChild我想重新定义仅返回类的类型 以便在 Netbeans 中正确查看它 我可以在不
  • JavaFX 3D 透视相机运动

    现在 感谢我的帮助先前的问题 https stackoverflow com questions 69249037 most simple rotate camera via mouse not working 以及来自用户 trashgo
  • mix.scripts 不起作用(webpack.mix.js)

    我有以下 webpack mix js const mix require laravel mix mix scripts resources assets js app js resources assets js definers js
  • 拉直弯曲轮廓

    给定一个具有易于识别边缘的轮廓 如何拉直它及其内容 如图所示 检测黑色边缘并为其拟合样条曲线 从该样条线上 您将能够绘制法线 并沿着它定期标记点 这形成了易于拉直的 u v 网格 要计算目标图像 请绘制水平行 这些行对应于源中的特定法线 然
  • 进入智能指针,如何处理代表所有权?

    我制作了一个动态图结构 其中节点和弧都是类 我的意思是弧是内存中的实际实例 它们并不是由节点到节点的邻接列表暗示的 每个节点都有一个指向它所连接的弧的指针列表 每个弧都有 2 个指针 指向它所连接的 2 个节点 删除节点会调用其每条弧的de
  • 绑定到127.0.0.2

    我在 Windows XP PC 上本地运行客户端 服务器应用程序 出于测试目的 我想运行多个客户端 服务器有一个配置文件 其中包含可以连接的客户端的IP地址 在现实世界中 这些都将位于具有不同 IP 地址的不同主机上 目前我可以使用绑定到
  • 如何使用自定义适配器对 listView 进行排序

    我正在制作一个应用程序 其中显示状态为在线和离线的人数 目前ListView是根据api设置的 我想根据人员的在线状态对 listView 进行排序 例如 如果没有 的人在线 然后列表视图首先显示他们 我在我的项目中实现了延迟加载图像 这是
  • 允许模拟类继承最终类

    我们可以使用 new C 关键字声明一个最终 密封的不可继承类final class Generator final 这个类可以从其他类继承 可以有也可以没有virtual 继承或不继承 但是 如何制作呢final 但允许一个类继承它 我们
  • div 内的垂直对齐范围[重复]

    这个问题在这里已经有答案了 http jsfiddle net UmHNL 2 http jsfiddle net UmHNL 2 div class container span Some text yay span div div cl
  • com.android.builder.testing.api.DeviceException:没有连接的设备!詹金斯错误

    我在 Windows 7 机器上安装了 Jenkins 2 73 1 没有从站 构建 Android 应用程序设置只有一项工作 我有connectedCheckgradle 任务作为作业构建过程的一部分执行 当我重新启动计算机并运行 Jen
  • 可拖动项目总是下降约 80px

    我对可拖动项目有奇怪的行为 每次我将它拖到我的堆栈上时 它都会从放置位置向下下降约 80px 这是一个近似值 也许对于另一部手机 它可能是其他值 x 值对我来说似乎没问题 这是代码 class GesturePage extends Sta
  • 如何在 DefaultRouter() 中进行反向操作

    我正在设置一个新的测试 并且我想进行相反的操作 router DefaultRouter router register profile views UserProfileViewSet base name profile urlpatte
  • 如何动态更改 Apollo Web Socket Link URI?

    目前我已经设置了 Apollo websocket 链接 如下所示 const wsLink new WebSocketLink uri ws example com graphql token getToken options recon