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