npm 包 express-graphql-subscriptions 使用教程

前言

GraphQL 是一种新的数据接口语言,相比于传统的 RESTful 接口更为灵活和可定制。同时,GraphQL 也提供了实时数据更新的能力。express-graphql-subscriptions 是一款通过将 GraphQL 和 WebSocket 相结合来提供实时数据更新的 npm 包。在这篇文章中,我们将学习如何使用它。

安装

首先,我们需要在我们的项目中安装 express-graphql-subscriptions 包。可以使用 npm 来完成安装:

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

配置

为了使用 express-graphql-subscriptions,我们需要将它与 GraphQL Server 和 WebSocket 结合使用。下面是一个简单的例子:

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

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

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

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

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

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

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

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

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

需要注意的是,subscriptionManagercreateSubscriptionServer 均需要使用的是 PubSub 对象。

同时,需要注意 SubscriptionManager 的自定义配置,包括 setupFunctionsonOperation。这些内容超出本文的讨论范围,可以参考官方文档。

使用

在我们的 GraphQL schema 中,我们可以定义一些 subscription 类型,例如:

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

这个 subscription 类型指定了,当博客文章被添加时我们将会得到一个 Post 类型的订阅消息。

在我们的 mutation 中,我们可以向服务器发送实时消息,例如:

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

在我们的 resolver 中,可以使用 pubsub.publish 方法来向 WebSocket Server 发送消息。例如:

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

------ -----

在客户端,我们可以使用 subscriptions-transport-ws 以及 Apollo Client 来链接 WebSocket Server,并接收实时消息,例如:

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

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

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

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

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

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

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

结论

通过使用 express-graphql-subscriptions,我们可以在我们的 GraphQL Server 中添加实时更新功能,这提高了我们应用程序的实时性和交互性,从而为用户提供更好的体验。虽然本文只是简单介绍了如何使用 express-graphql-subscriptions,但是相信经过学习,您已经可以愉快的使用它了。

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


猜你喜欢

  • npm 包 @gerhobbelt/sizzle 使用教程

    前言 在前端开发中,我们经常需要对网页中的 DOM 元素进行操作,获取子元素、筛选元素等操作是不可避免的。而在实现这些功能的过程中,使用 Sizzle 能够帮我们减少很多代码的编写。

    3 年前
  • npm 包 cupping 使用教程

    前言 随着前端技术的迅速发展,前端开发工具和框架层出不穷。其中,npm 是前端开发中不可或缺的技术之一。npm 能够让我们方便地管理我们的项目,快速地安装和更新依赖项,并能够让我们轻松地与其他开发者分...

    3 年前
  • npm包safely-parse-json使用教程

    在前端开发中,我们经常需要将JSON字符串转换为JavaScript对象。然而,由于JSON字符串不可避免地包含一些不合法的字符,比如Unicode转义序列,对于某些JSON字符串使用JavaScri...

    3 年前
  • npm 包 bcrypt-password-hash 的使用教程

    如果你是一名前端开发者,你很有可能处理用户密码(密码重置、密码加密等)。bcrypt 是一种一般用于存储用户密码的加密算法,而 npm 包 bcrypt-password-hash 是 bcrypt ...

    3 年前
  • npm 包 gatsby-plugin-lunr-search 使用教程

    简介 在现代 Web 应用中,搜索是一种非常常见的功能。针对静态网站而言,按照往常的做法,需要通过手动构建一个搜索索引,依赖于一个现成的搜索解决方案。而 GatsbyJS 就是一个可以生成静态网站的前...

    3 年前
  • npm 包 @f-loat/mpvue-loader 使用教程

    前言 在前端开发中,我们经常使用 Vue 框架来构建我们的页面。而 mpvue 是一款基于 Vue.js 的小程序开发框架,为开发小程序提供了更加方便的方式。但使用 mpvue 开发时,我们需要采用一...

    3 年前
  • npm 包 @ansaro/eslint-config 使用教程

    前言 随着前端技术的不断发展,开发的复杂度和规模也在不断增加。为了保证代码的可维护性和可读性,我们需要使用一些工具来规范我们的代码,例如 ESLint。在此,我将介绍一款 npm 包 @ansaro/...

    3 年前
  • npm 包 @use-pattern/security 使用教程

    在前端开发中,安全永远是我们需要重视和关注的重要问题。而 @use-pattern/security 就是一款可以帮助我们提高前端安全性的 npm 包。它提供了一些常用的安全策略和工具,帮助我们更好地...

    3 年前
  • npm 包 utraq-datatable 使用教程

    utraq-datatable 是一个前端维护大量数据表格的 npm 包,能够在客户端实现异步实时渲染,支持分页、排序、筛选、可选行、合并单元格等多种功能。本文将详细介绍 utraq-datatabl...

    3 年前
  • npm 包 dworldcojp_palindrome 使用教程

    前言 在日常的前端开发中,我们经常需要处理字符串。其中,判断字符串是不是回文字符串是一个非常基本的需求。本文介绍了 npm 包 dworldcojp_palindrome,它可以帮助我们轻松地判断字符...

    3 年前
  • npm包gatsby-transformer-kml使用教程

    简介 gatsby-transformer-kml是一个npm包,可以将KML(Keyhole Markup Language)文件转换为JSON格式,以便在Gatsby应用程序中使用。

    3 年前
  • npm 包 split-lyrics 使用教程

    作为前端工程师,我们经常需要处理歌词相关的需求。而现在,有一个 npm 包叫做 split-lyrics,可以非常方便地帮助我们完成歌词的分割和处理。本文将介绍 split-lyrics 的使用方法,...

    3 年前
  • npm 包 fantasyinternet.wast 使用教程

    简介 fantasyinternet.wast 是一个基于 WebAssembly 技术的前端模块化开发工具库,通过解释执行的方式实现了更高效、更快速的代码执行,可以有效提升前端开发的效率。

    3 年前
  • npm 包 andy-tua-mp 使用教程

    介绍 andy-tua-mp 是一个基于 webpack 的小程序打包工具,可以用于将小程序的代码分割成多个 chunk,并按需加载 chunk,从而减少小程序启动时间和包体积。

    3 年前
  • npm 包 gulp-interactive 使用教程

    在前端开发工作中,通常需要对代码进行自动化构建,而 Gulp 就是一个非常流行的自动化构建工具,同时也有很多 Gulp 插件可供使用。其中,gulp-interactive 是一款非常实用的插件,本文...

    3 年前
  • npm 包 needle-inject 使用教程

    简介 needle-inject 是一个轻量级的前端依赖注入库,它允许你定义依赖关系并注入它们,以便于组织代码、实现解耦合等。类似于 AngularJS 的依赖注入来管理服务等。

    3 年前
  • npm 包 @dhigroup/vtk.js-fork 使用教程

    介绍 vtk.js是一个基于WebGL的3D可视化工具,可用于在网页上展示各种3D图形数据。而@dhigroup/vtk.js-fork是一个基于vtk.js的扩展,用于实现更加丰富的可视化功能和优化...

    3 年前
  • npm 包 @estudioliver/vue-uuid-v4 使用教程

    前言 在前端开发中,经常需要生成唯一标识符(UUID),以便标识和处理数据、组件等。而生成 UUID 是一项基本而重要的任务。本文将介绍 npm 包 @estudioliver/vue-uuid-v4...

    3 年前
  • npm 包 hyperapp-create 使用教程

    在前端开发中,使用框架和库来简化繁琐的工作已经成为了一种趋势。随着 ES6 的普及和 webpack 的流行,npm 作为前端工具包管理工具已经成为了前端开发者不可或缺的一部分。

    3 年前
  • npm 包 journey-planner-and-fares-service 使用教程

    最近,开发人员们越来越依赖于 npm 上的开源软件包来处理特定的任务和功能。如果你正在开发一个交通相关的网站或应用程序,那么 npm 包 journey-planner-and-fares-servi...

    3 年前

相关推荐

    暂无文章