npm 包 @sandglass/grpc 使用教程

阅读时长 5 分钟读完

什么是 @sandglass/grpc

@sandglass/grpc 是一个基于 gRPC 的 JavaScript 客户端库,可以在 Node.js 和浏览器中使用。该库提供了透明而简单的使用方式,以帮助开发人员轻松地与 gRPC 提供的服务进行通信。

安装

可以通过以下命令在您的项目中安装 @sandglass/grpc

使用

创建客户端

首先,需要创建一个 Protobuf 编译器可接受的 .proto 文件,例如:

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

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

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

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

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

然后,就可以使用 @sandglass/grpc 创建一个客户端:

client 对象是使用 Protobuf 文件生成的客户端对象,用于访问远程 gRPC 服务。

基本使用

以下是基本的 @sandglass/grpc 的使用方式:

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

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

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

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

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

在代码中,我们使用 client 对象访问服务端的 SayHello 方法。请求对象是一个带有 name 属性的简单对象。

在回调函数中,处理 response 对象,该对象是服务端返回的响应对象,其中包含 message 属性。

根据需求自定义客户端

可以使用 grpc.makeGenericClientConstructor 方法根据您的需求自定义客户端。

以下示例演示如何使用 makeGenericClientConstructor 构造客户端对象:

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

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

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

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

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

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

在上面的代码中,makeGenericClientConstructor 方法构造了一个自定义的客户端,用于调用 SayHello 方法。

错误代码

在使用 @sandglass/grpc 时,可以通过以下错误代码处理错误:

  • grpc.status.CANCELLED:操作在它完成之前被取消;
  • grpc.status.UNKNOWN:服务器遇到了一个未知的错误;
  • grpc.status.DEADLINE_EXCEEDED:操作超时;
  • grpc.status.PERMISSION_DENIED:请求被拒绝;
  • grpc.status.NOT_FOUND:请求未发现;
  • grpc.status.ALREADY_EXISTS:请求所希望的资源已经存在;
  • grpc.status.ABORTED:由于与同步请求 / 响应的序列存在冲突而引起的错误;
  • grpc.status.FAILED_PRECONDITION:操作被拒绝,因为它的状态不满足请求条件;
  • grpc.status.OUT_OF_RANGE:操作被拒绝,因为输入的操作超出了范围;
  • grpc.status.UNIMPLEMENTED:操作未被实现或未被服务器支持;
  • grpc.status.INTERNAL:服务器发生了不可恢复的错误,请检查日志;
  • grpc.status.UNAVAILABLE:服务当前不可用,它可能已经停止或是正在启动中;
  • grpc.status.DATA_LOSS:发生了不可恢复的数据丢失或数据损坏。

结语

本文介绍了 @sandglass/grpc 的用法及其核心功能。希望它能为您提供一些指导和学习价值。

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

纠错
反馈