npm 包 grpc-sdk-client 使用教程

阅读时长 6 分钟读完

前言

gRPC 是一种高性能的远程过程调用框架,可以跨语言使用,支持多种平台。很多公司也在使用 gRPC 进行服务化架构的实现,让前端同学也学习一下是很有必要的。这里介绍一下如何使用 npm 包 grpc-sdk-client 实现前端与后端的 gRPC 通信。

安装

首先需要全局安装 grpc-tools

然后再安装 grpc-sdk-client

使用

1. 定义 proto 文件

首先需要定义好 proto 文件,以便生成对应的 gRPC 代码。

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

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

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

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

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

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

2. 自动生成 gRPC 代码

然后使用 grpc-tools 命令行工具,自动生成对应的 gRPC 代码。

上面命令将生成 example_pb.js 和 example_grpc_pb.js 两个文件。将它们放到一个文件夹中,例如 ./grpc/。

3. 实现客户端逻辑

接下来可以实现客户端逻辑,调用服务端的接口。

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

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

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

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

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

上面代码中,我们首先使用 protoLoader 加载生成的 example.proto 文件并生成对应的 gRPC 代码。然后创建 ExampleService 的客户端 client,并调用 sayHello 方法进行请求。结果返回后能够打印出 response.message 的内容。

4. 实现服务器端逻辑

最后实现服务器端逻辑,实现 SayHello 接口。

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

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

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

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

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

-------

上面代码中,我们首先加载了生成的 example.proto 文件,并创建了 ExampleService 的实现类。然后实现 SayHello 方法,用来对客户端的请求进行响应。最后,我们创建了一个 grpc.Server,并注册了 ExampleService 的 service 和 sayHello 方法,并启动服务绑定在 0.0.0.0:50051 上。

总结

通过上面这个简单的例子,我们能够初步认识 gRPC 的使用流程。使用 npm 包 grpc-sdk-client,我们可以简单地在前端使用 gRPC,实现高性能和跨语言交互的需求。

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

纠错
反馈