npm 包 gqlws-client 使用教程

阅读时长 5 分钟读完

GraphQL 是一种 API 查询语言,其目的是为了设计更加高效、强大的 Web API。gqlws-client 是一个基于 websocket 的 GraphQL 客户端库,它的设计之初就是为了更好地支持 GraphQL 实时查询(subscriptions)。本文将介绍使用 npm 包 gqlws-client 进行 GraphQL 实时查询的详细步骤,带有深度的学习和指导意义,并附有示例代码。

安装 gqlws-client

要安装 gqlws-client npm 包,只需运行以下命令:

使用 gqlws-client

使用 gqlws-client,我们需要在客户端创建一个 GraphQL 客户端实例。我们需要定义一个 GraphQL schema,然后将其传递给 gqlws-client 实例,以便它可以理解我们要发送的查询。

以下是您需要运行的基本代码,以创建并使用 gqlws-client 实例:

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

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

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

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

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

代码解释:

  • WebScoketLink:用于创建一个 websocket 连接的链路。
  • ApolloClient:Apollo 提供的数据管理 API。
  • InMemoryCache:Apollo 提供的缓存管理 API。
  • new ApolloClient:创建 apollo-client 实例,将 websocket 链路和缓存管理器传递给它。
  • gqlws:返回带有扩展功能的 apollo-client 实例,以支持 GraphQL 实时查询。
  • query:使用 gqlws 客户端进行查询。

gqlws-client 高级支持

gqlws-client 带有一些高级功能,可以帮助您更好地使用它,以下是其中一些:

进度上报

GQLWS 客户端可以提供进度上报功能,使您可以了解到您的查询是否已经发出,以及查询导致的数据变化是否已经到达:

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

断线重连

gqlws-client 可以自动进行断线重连,以提供更加可靠的实时查询功能:

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

使用 GraphQL 订阅

gqlws 客户端还可以直接处理 GraphQL 订阅(subscriptions):

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

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

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

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

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

以上详细介绍了 gqlws-client 的基本用法和高级用法,使用 gqlws-client 可以更好的支持 GraphQL 实时查询。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005601581e8991b448de297

纠错
反馈