npm 包 graphql-redis-subscriptions 使用教程

GraphQL 是一种新型的数据查询语言,它可以通过定义一个类型系统来描述数据,并提供强大的查询能力。对于实时数据的处理,GraphQL-Redis-Subscriptions 是一个非常好的解决方案。

在本文中,我们将介绍如何使用 npm 包 graphql-redis-subscriptions 来搭建一个实时数据系统,并且通过示例代码来演示其功能。

1. 安装

在使用之前,请确保已安装 Redis。

--- ------- --------------------------- ------

2. 创建 PubSub 实例

PubSub 是一种常见的模式,用来在不同的应用程序之间传递消息。在 GraphQL-Redis-Subscriptions 中,PubSub 用于实现实时订阅。创建一个 PubSub 实例很简单:

----- ----- - -------------------
----- - ----------- - - ---------------------------------------

----- ----- - --- --------
----- ------ - --- -------------
  ----------- ------
---

3. 配置 Subscription

接下来,我们需要定义 Subscription 的类型。

----- - ---------- - - ---------------------------------
----- - ------ - - ---------------------------------
----- - -------------------- - - ---------------------------------
----- - ----------- - - ---------------------------------------

----- ----- - --- --------
----- ------ - --- -------------
  ----------- ------
---

----- -------- - -
  ---- ------------ -
    -------------- --------- ----
  -

  ---- ---- -
    --- ----
    -------- -------
  -
--

----- --------- - -
  ------------- -
    -------- -
      ---------- -----------
        -- -- ---------------------------------
        --------- ---------- -- -
          ------ ------------- --- ----------------
        -
      --
      -------- --------- ---- -- -
        ------ --------
      --
    --
  --
--

----- ------ - ----------------------
  ---------
  ----------
---

这里,我们定义了一个 Subscription 类型,其中包含一个名为 newPost 的订阅。我们使用 withFilter 封装 pubsub.asyncIterator("NEW_POST"),实现对指定话题的过滤。

接下来,我们来看看,如何在 Mutation 中向 Subscription 发布消息。

----- - ---------- - - ---------------------------------
----- - ------ - - ---------------------------------
----- - -------------------- - - ---------------------------------
----- - ----------- - - ---------------------------------------

----- ----- - --- --------
----- ------ - --- -------------
  ----------- ------
---

----- -------- - -
  ---- ----- -
    ------ ------
    -------- ------ ----
  -
  ---- -------- -
    ------------------- --------- ----
  -
  ---- ------------ -
    -------------- --------- ----
  -
  ---- ---- -
    --- ----
    -------- -------
  -
--

--- ----- - -
  - --- -- -------- ------- ------- --
  - --- -- -------- ------- --------- --
--

----- --------- - -
  ------ -
    ------ -- -- ------
    ----- --- - -- -- -- ----------------- -- ------- --- ----
  --
  --------- -
    ----------- --- - ------- -- -- -
      ----- ---- - - --- ------------ - -- ------- --
      -------------------------- - ------ ----------- ------- ---
      -----------------
      ------ -----
    --
  --
  ------------- -
    -------- -
      ---------- -----------
        -- -- ---------------------------------
        --------- ---------- -- -
          ------ ------------- --- ----------------
        -
      --
      -------- --------- ---- -- -
        ------ --------
      --
    --
  --
--

----- ------ - ----------------------
  ---------
  ----------
---

当调用 createPost 的时候,我们同时也发布了一个 NEW_POST 的事件。这个事件包含了 post 的 id 和 content。

现在,我们打开 GraphQL Playground,输入以下 Mutation:

-------- -
  ------------------- ------- ---------- -
    --
    -------
  -
-

查询可以得到如下结果:

-
   ------- -
     ------------- -
       ----- --
       ---------- ------- ---------
     -
   -
-

同时,我们还可以打开一个新的窗口,输入以下 Subscription:

-------------
  -------------- ------------
    --
    -------
  -
-

这样我们就可以看到所有的新消息。当我们再次执行 Mutation 的时候,新消息也会立刻发布到这个 Subscription 上。

总结

在这篇文章中,我们介绍了如何使用 GraphQL-Redis-Subscriptions 这个 npm 包来实现实时订阅。我们学习了如何创建 PubSub 实例,以及如何配置 Subscription 和发布消息。掌握这些知识点,我们可以很容易地搭建一个实时数据系统,并且能够方便地处理实时数据。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedae68b5cbfe1ea0610e34


猜你喜欢

  • npm 包 apr-engine-until 使用教程

    前言 在前端开发中,我们经常需要使用各种工具和库来提高开发效率。npm 命令行是一种非常流行的包管理工具,提供了大量的包可以供我们使用。其中,apr-engine-until 是一款非常实用的工具包,...

    4 年前
  • npm 包 build-array 使用教程

    npm 包是前端开发中不可或缺的工具,而 build-array 更是帮助我们快速生成数组的实用工具。本文将分以下几段详细介绍 build-array 的使用方法,提供有深度的学习和指导意义。

    4 年前
  • npm 包 apr-engine-iterator 使用教程

    在前端开发中,往往需要对一组数据进行迭代处理,以便进行显示或者处理。但是进行手动的迭代处理往往繁琐而且容易引起错误。这时候,npm 包 apr-engine-iterator 就能够帮助我们轻松解决这...

    4 年前
  • npm 包 apr-engine-run 使用教程

    前言 在前端开发中,我们经常会使用一些第三方库来加快我们开发的速度。通常,我们使用 npm 来管理这些库和工具包。在这篇文章中,我将要介绍一个名为 apr-engine-run 的 npm 包,它可以...

    4 年前
  • npm 包 apr-engine-each 使用教程

    前言 apr-engine-each 是一个适用于前端开发的 npm 包,它可以对集合中的每个元素进行类似于 forEach 的处理。但不同的是,apr-engine-each 在处理时可以返回一个 ...

    4 年前
  • npm 包 apr-reduce 使用教程

    在前端开发中,使用 JavaScript 进行数据处理是非常常见的。如果遇到数据集较大的情况,可能会出现性能问题。这时候可以使用 apr-reduce 这个 npm 包来提高数据处理效率。

    4 年前
  • npm 包 apr-parallel 使用教程

    介绍 npm 包 apr-parallel 是一个可以在 Node.js 中执行并行操作的工具,它允许我们构建高效、并发性能强大的应用程序。此外,apr-parallel 还可以轻松地控制并行任务的数...

    4 年前
  • npm 包 bup 使用教程

    背景 在 Web 开发中,为了保证代码的可维护性和可重用性,我们常常会把一些常用的功能封装成一个个 npm 包。本文将介绍如何使用一个名为 bup 的 npm 包来进行前端开发中常用的打包和压缩文件的...

    4 年前
  • npm 包 @types/wnumb 使用教程

    在前端开发中,经常需要对数字进行格式化,比如处理货币金额、百分比等等。Wnumb 是一个用于数值格式化的 JavaScript 库,提供了丰富的格式化选项以及定制化能力。

    4 年前
  • npm 包 @tippy.js/react 使用教程

    前言 在前端开发中,我们经常需要实现一些交互效果,例如鼠标悬浮时弹出提示框、拖拽等动态效果等等。这个时候,我们可以使用一些优秀的 JavaScript 库来快速实现这些效果。

    4 年前
  • 教你使用 docz-rollup 打包 npm 包

    在前端开发中,封装一个 npm 包是很常见的事情。然而,为了方便别人使用自己的包,在推荐使用文档生成器和打包工具进行开发和打包。这篇文章将带你学习如何使用 docz-rollup 这样的工具,让你的 ...

    4 年前
  • npm 包 load-cfg 使用教程

    前言 如果你不了解 npm 是什么以及它的作用,建议你先去了解一下 npm 的基本知识。 在使用 npm 包的过程中,我们经常需要加载一些配置文件,例如一些环境变量等等。

    4 年前
  • npm 包 react-docgen-actual-name-handler 使用教程

    在前端开发中,我们经常使用 React 来构建用户界面。但是,当我们开始编写复杂的 React 组件库时,我们需要一种自动化的解决方案来生成组件 API 文档。这就是 react-docgen-act...

    4 年前
  • npm 包 docz-core 使用教程

    在前端开发中,我们经常需要编写文档来记录每个组件的用法、参数和样式等信息,以便团队成员之间的沟通和交流。而手动编写文档往往是一件繁琐而又枯燥的事情,需要花费大量的时间和精力。

    4 年前
  • npm 包 gatsby-plugin-eslint 使用教程

    在现代的前端开发中,代码质量和规范性变得愈发重要。ESLint 是一个广泛使用的 JavaScript 静态代码分析工具,可以通过检查代码中的语法和风格错误来提高代码质量和可读性。

    4 年前
  • npm 包 babel-plugin-export-metadata 使用教程

    前言 在前端开发中,我们经常会用到 Babel 来进行代码编译。而 babel-plugin-export-metadata 就是一个 Babel 插件,用于在编译过程中导出一些元数据信息,在开发过程...

    4 年前
  • npm 包 gatsby-plugin-react-helmet-async 使用教程

    什么是 gatsby-plugin-react-helmet-async? gatsby-plugin-react-helmet-async 是一个 Gatsby 插件,它允许您在 React 组件中...

    4 年前
  • npm 包 gatsby-plugin-root-import 使用教程

    前言 在前端开发中,我们经常需要引入一些文件或者库。有时候,我们会发现在引入文件或者库的时候,路径过长,难以识别,不利于代码的阅读和维护。例如,有时候我们需要引入一个文件,路径如下: ------ -...

    4 年前
  • npm 包 mdx-utils 使用教程

    在前端开发中,我们常常需要处理 Markdown 格式的文本。而 mdx-utils 就是一款专门用来处理 Markdown 文件的 npm 包。本文将详细介绍如何使用 mdx-utils,包括 AP...

    4 年前
  • npm 包 docz-utils 使用教程

    在前端开发过程中,我们时常需要编写组件文档,docz 是一个非常好用的库来实现文档自动生成,而 docz-utils 是它的核心工具库,它提供了很多方便的方法。这篇文档主要介绍如何使用 docz-ut...

    4 年前

相关推荐

    暂无文章