使用 npm 包 grpc-web: 一个详尽的指南

什么是 gRPC-web?

gRPC-web 是一个用于在网页和 Web 应用中使用 gRPC 服务的通用方法。 它是一个开源项目,由 Google 主导开发,现在已经为用户开源。

gRPC-web 与 gRPC 的区别

gRPC 是一个现代高性能的开源远程过程调用(RPC)框架。它可以生成不同语言的客户端和服务端代码。gRPC 特别适用于高并发、分布式系统。

gRPC-web 适用于浏览器和 Web 应用程序环境,通过使用 envoy 代理以将 HTTP/1.1 转换为 gRPC 的 HTTP/2 流。

如何使用 gRPC-web

步骤 1:安装 protobuf

gRPC 使用 protobuf 的消息格式。在 Node.js 环境中使用 protobuf,我们需要安装相应的 Node.js protobuf。

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

步骤 2:编写 gRPC 服务描述文件

现在我们需要编写一个 gRPC 服务描述文件,以便后面使用该文件生成客户端和服务器代码。

例如,我们编写以下文件 proto/greeter.proto:

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

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

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

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

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

在这个文件中,我们定义了一个 Greeter 的服务,以及这个服务只有一个方法 SayHello。

在 message 中,我们定义了需要传递的参数,以及方法返回的结果。

步骤 3:生成 gRPC 客户端与服务器端代码

我们已经编写了一个服务描述文件,现在我们需要生成客户端和服务器代码。有很多不同的用于从 .proto 文件生成代码的工具,我们使用的是 grpc_tools_node_protoc 这个 npm 包。

在这个步骤中,我们将生成 gRPC 的客户端和服务器端代码。

要安装 grpc_tools_node_protoc 使用以下命令:

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

然后,进入到 .proto 文件所在的目录,执行以下命令:

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

以上命令会生成两个文件:

  • greeter_pb.js: 包含 protobuf 编译器生成的 JavaScript 代码。
  • greeter_grpc_pb.js: 包含 gRPC 框架生成的 JavaScript 代码。

步骤 4:安装 grpc-web

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

步骤 5:编写 web 应用代码

在编写 Web 应用前需要先引入必要的依赖:

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

在引入必要依赖后,我们就可以使用 gRPC-web 进行通信了。例如,我们可以使用以下代码进行客户端以及服务端的交互:

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

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

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

首先就是实例述了一个客户端,搭配 http://localhost:8080 进行使用。之后需要传输的参数通过 request.setName(name) 指定,通过 greeterService.sayHello 方法与服务端进行交互,最后的参数 err,response 返回的是错误以及返回结果。

结语

本文简要地介绍了使用 npm 包 gRPC-Web,我们首先需要安装 protobuf,然后需要编写运行的服务描述文件,接下来生成监听代码。最后在应用Web页面中调用相应的方法,即可完成客户端与服务器端的交互。最后,我们需要注意 gRPC 和 gRPC-web 的区别,在不同纬度上应该选用不同产品。

以上就是本文介绍的内容,期望能够帮助到前端工程师。

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


猜你喜欢

  • npm 包 quokka-signet-explorer 使用教程

    前言 在前端开发领域,我们经常会使用一些npm包来提高开发效率。在这个过程中,我们发现有些包比较受欢迎,例如 quokka-signet-explorer 这个包。

    5 年前
  • npm包datamother使用教程

    随着前端技术的不断发展,前端开发中也越来越复杂。因此,像 datamother 这样的 npm 包,就会变得越来越受欢迎。datamother 是一个更好的数据模拟生成包,它可以帮助我们更好地模拟和测...

    5 年前
  • npm 包 stubcontractor 使用教程

    在前端开发中,我们经常要和后端接口进行交互,而在开发和测试过程中,我们无法保证后端接口已经就绪,因此可能会出现无法进行测试的情况。为了解决这个问题,我们可以使用 Mock 数据,这时候就需要一个 St...

    5 年前
  • npm 包 snapdir 使用教程

    snapdir 是一款前端开发工具,它可以用来生成文件目录树的快照,并输出为 JSON 格式。snapdir 可以在 Web 开发中高效地生成目录树,同时也方便后续维护工作的进行。

    5 年前
  • npm 包 approvals 使用教程

    npm 包 approvals 使用教程 npm 是目前最受欢迎的包管理工具之一,它可以让我们快速地安装和更新依赖项。使用 npm 包来加速前端开发也越来越普遍。而这篇文章将介绍一种在 JavaScr...

    5 年前
  • npm 包 homophonizer 使用教程

    在前端开发中,我们常常需要处理文本数据,其中一个常见的需求就是需要将一些指定的单词替换为它们的同音词,这一过程就可以通过 npm 包 homophonizer 来实现。

    5 年前
  • npm 包 alchemy-search 使用教程

    简介 alchemy-search 是一个基于 Node.js 的 npm 包,它提供了一种简单易用的方法,通过 API 对各个社交媒体平台(包括 Twitter、Instagram 等)进行数据的访...

    5 年前
  • npm 包 Voweler 使用教程

    简介 Voweler 是一个用于提取字符串中元音字符的 JavaScript 工具库,它是一个基于 Node.js 的 npm 包。使用 Voweler 可以快速、方便地提取出文本中所包含的元音字符,...

    5 年前
  • npm 包 double-metaphone 使用教程

    概要 double-metaphone 是一个常用于字符串匹配的 npm 包,可以快速处理字符串并提供一种基于发音的近音匹配算法,常用于搜索引擎、拼音、拼音缩写等场景。

    5 年前
  • npm 包 text-sound-similarity-improved 使用教程

    简介 text-sound-similarity-improved 是一个 Node.js 包。它使用自然语言处理和音频处理技术,对一段文字和一段录音进行相似度比较。

    5 年前
  • npm 包 text-sound-similarity 使用教程

    前言 在前端开发中,文本处理是非常重要的环节之一。对于文本处理,我们除了要对文本进行分词、去除停用词等常见的处理方式之外,还需要对文本相似度进行计算。在实际开发中,有时候由于某些原因,我们需要计算文本...

    5 年前
  • npm 包 react-speech-recognition-status 使用教程

    简介 react-speech-recognition-status 是一个基于 React 的语音识别状态管理库,可以帮助开发者轻松地实现语音识别功能。它提供了许多方法和状态,可以方便地进行语音识别...

    5 年前
  • npm 包 dom-element-types 使用教程

    在前端开发中,我们经常需要对 HTML 文档中的 DOM 元素进行操作。而 npm 包 dom-element-types 可以帮助我们更好地了解这些 DOM 元素的类型及其相关属性。

    5 年前
  • NPM 包 Clj-fuzzy 的使用教程

    在前端开发中,我们经常需要处理一些字符串相关的任务,例如字符串匹配、去重、排序等。这些任务中涉及到的算法相对较为复杂,如果手动实现会比较耗时且容易出错。为了解决这个问题,Clj-fuzzy 这个 NP...

    5 年前
  • NPM 包 node-red-contrib-viseo-soundex 使用教程

    在前端开发中,我们经常需要使用许多 NPM 包来完成一些复杂的功能。其中,一个非常有用的 NPM 包就是 node-red-contrib-viseo-soundex,它可以对输入的文本进行 Soun...

    5 年前
  • npm 包 node-red-contrib-viseo-socketio 使用教程

    npm 包 node-red-contrib-viseo-socketio 是一个很好的工具,它可以帮助前端开发者实现基于 Socket.IO 的通讯。本文将详细介绍该工具的使用方法,希望能够对初学者...

    5 年前
  • npm 包 node-red-contrib-viseo-soap 使用教程

    如今,Web 界面占据了越来越多的市场份额。站点和应用程序的复杂性日益增加,前端的开发体验和框架也不断改进。本文介绍一款前端工具:npm 包 node-red-contrib-viseo-soap,从...

    5 年前
  • npm 包 node-red-contrib-viseo-sarah 使用教程

    前言 node-red-contrib-viseo-sarah 是一个基于 Node-RED 开发的语音助手插件,其可以与 SARAH 交互,实现语音控制 Node-RED 中的设备、节点等操作。

    5 年前
  • npm包node-red-contrib-viseo-salesforce的使用教程

    在前端开发中,npm是一个非常重要的工具,通过这个工具可以实现众多的功能,包括管理包、更新包、安装包等等。本文将介绍如何通过npm包node-red-contrib-viseo-salesforce来...

    5 年前
  • npm 包 node-red-contrib-viseo-tokenizer 使用教程

    什么是 node-red-contrib-viseo-tokenizer? node-red-contrib-viseo-tokenizer 是一个用于自然语言处理的 npm 包,基于 Node-RE...

    5 年前

相关推荐

    暂无文章