npm 包 @koverse/koverse-thrift-client 使用教程


简介

@koverse/koverse-thrift-client 是一个基于 Node.js 的 NPM 包,用于在前端应用程序中进行 Thrift 服务的调用。它使用异步操作与服务通讯,并支持服务端和客户端的连接池、连接超时和连接重试等功能。此外,它还支持通过 Promise 和 Async/Await 实现异步编程。

本文将详细介绍 @koverse/koverse-thrift-client 的使用方法和相关注意点,并带有示例代码。

安装和配置

使用 @koverse/koverse-thrift-client,需要 Node.js 的版本不低于 6.5.0。安装该包可以使用 NPM:

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

如需在 TypeScript 中使用,还需要安装 @types/node:

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

在使用之前,需要进行以下几个配置:

  1. 导入包
-- --- --
------ -------- ---- ---------------------------------
-- -------- --
----- -------- - ------------------------------------------
  1. 创建 Thrift 客户端
----- ------ - ----- ----------------------- -- ------- -- ---

参数 Options 中包含以下几个属性:

  • host {string} Thrift 服务的地址,如:'127.0.0.1',默认为 'localhost'。

  • port {number} Thrift 服务的端口,如:'9090',默认为 9090。

  • serviceName {string} 指定 Thrift 服务的名称,如:'MyThriftService',默认为 null。

  • transport {string} Thrift 传输层的协议类型,如:'buffered'、'framed'、'http' 等,默认为 'framed'。

  • protocol {string} Thrift 序列化协议类型,如:'binary'、'compact' 等,默认为 'binary'。

  • connectionOpts {Object} 连接参数,包含以下属性:

    • max_attempts {number} 最多尝试连接的次数,默认为 0,表示无限次尝试。

    • retry_delay {number} 重试延迟时间(毫秒),默认为 1000。

    • connect_timeout {number} 连接超时时间(毫秒),默认为 3000。

    • retry_strategy {Function} 自定义重试策略函数,如果未指定,则使用默认的重试策略函数。

  1. 调用服务
----- ---- - ----- ----------------------- ----- -----

其中,methodName 为 Thrift 服务中的方法名,arg1, arg2, ... 为该方法的参数。

异步编程

@koverse/koverse-thrift-client 支持 Promise 和 Async/Await 两种方式实现异步编程。

  1. Promise
----------------------- ----- ----
  ---------- -- -
    -- -----
  --
  ---------- -- -
    -- ----
  ---
  1. Async/Await
----- -------- -------------- -
  ----- ---- - ----- ----------------------- ----- -----
  -- -----
-

在使用 Async/Await 时,必须将该函数声明为 async 函数。

示例代码

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

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

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

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

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

注意事项

  1. 在使用 AutoGenerated 序列化协议时,必须先确保该协议生成文件已被正确安装。

  2. 在使用 Transport 层时,由于某些 Transport 不支持 pauseresume 方法,在应用程序中使用这些方法可能会导致应用程序阻塞。因此,建议使用 framedbuffered 两种 Transport 类型。

  3. 在使用 Thrift 服务时,应该仔细阅读服务的 API 文档,了解服务接口的参数类型、返回值类型和异常类型等信息。

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


猜你喜欢

  • npm 包 2tikz 使用教程

    简介 2tikz 是一个基于 LaTeX TikZ 的 npm 包,可以帮助前端开发者快速地生成高质量的 TikZ 图形,并以多种方式输出,包括 SVG、PDF 等。

    5 年前
  • npm 包 2k-website-rotator 使用教程

    前言 在现今的互联网时代,网站的用户体验至关重要。而用户体验的核心部分之一就是网站的页面加载速度。如果网站需要加载很长时间,很有可能使得用户厌烦从而离开。因此,对于前端开发人员而言,提高页面加载速度,...

    5 年前
  • npm 包 2k-domain-rotate 使用教程

    在前端开发中,有时需要使用多个域名来管理和维护网站。但是,当其中一个域名不可用或者需要更换时,就需要手动更改所有的链接,非常麻烦。为了解决这个问题,我们可以使用 npm 包 2k-domain-rot...

    5 年前
  • npm 包 2chhk-to-telegram-images-bot 使用教程

    在前端开发中,有时候我们需要将从 2chhk 获取的图片发送到 Telegram,此时就可以使用 npm 包 2chhk-to-telegram-images-bot。

    5 年前
  • npm 包 1hudong 使用教程

    介绍 1hudong 是一个基于 Vue.js 的前端 UI 组件库,包含丰富的 UI 元素和交互组件,支持自定义主题和样式。通过 npm 安装即可简单地引入使用。

    5 年前
  • npm 包 1257-server 使用教程

    在前端开发中,使用 npm 包已经成为标配。然而,在众多的 npm 包中,有一款名为 1257-server 的包,可以有效地帮助前端开发者实现本地服务器的搭建与管理。

    5 年前
  • npm 包 12345abcdehaha 使用教程

    什么是 npm 包? npm 是 JavaScript 的包管理系统,它允许开发人员在自己的项目中使用开源的代码包来构建应用程序。npm 包是一系列 JavaScript 文件,可以通过 npm 安装...

    5 年前
  • npm 包 @authentic/mwc-ripple 使用教程

    在前端开发中,Ripple 效果是一种常见的用户界面设计元素,特别是在 Material Design 中被广泛应用。该特效会使得页面元素被点击时产生波纹效果,给用户视觉上的反馈。

    5 年前
  • npm 包 @bitchin/react-material-web 使用教程

    @bitchin/react-material-web 是一个基于 React 和 Material Design 的 UI 库,可大幅提高前端开发效率,减少代码量,让开发者可以更加专注于业务逻辑的实...

    5 年前
  • npm 包 @betazuul/circular-progress 使用教程

    在前端开发过程中,经常需要使用到进度条来展示任务的处理进度。@betazuul/circular-progress 是一个基于 React 的 npm 包,能够高效地实现圆形进度条的效果。

    5 年前
  • npm 包 @beezydev/theme 使用教程

    在前端开发中,主题样式是非常重要的一部分,它可以让我们快速定制网页的布局、颜色、字体等各个方面。而 @beezydev/theme 就是一个好用的主题包,它包含了多种主题样式,可以帮助我们快速定制一些...

    5 年前
  • npm 包 @authentic/mwc-circular-progress 使用教程

    介绍 @authentic/mwc-circular-progress 是一个基于 Material Design 风格的圆形进度条组件。它使用 TypeScript 编写,内置了 Web Compo...

    5 年前
  • npm 包 @au-mcw/ripple 使用教程

    介绍 @au-mcw/ripple 是一个轻量级的 npm 包,用于在前端应用程序中为元素添加水波纹效果。它旨在提供一个易于使用和高效的解决方案,以帮助开发人员改善用户体验。

    5 年前
  • npm 包 @material/dialog 使用教程

    前言 @material/dialog 是 Google Material Design 组件库中的一个对话框组件,提供了丰富的视觉效果和交互方式。本文将详细介绍如何使用该组件在您的前端项目中构建优秀...

    5 年前
  • npm 包 @material/data-table 使用教程

    本篇文章将介绍如何使用 npm 包 @material/data-table 来创建一个数据表格,并为使用者提供深度的学习和指导意义。同时,本文也将提供示例代码供读者参考。

    5 年前
  • npm 包 @material/chips 使用教程

    前言 在现代前端开发中,组件化和模块化已成为主流趋势。为了快速、高效地开发应用程序,利用外部工具包和库已成为不可或缺的一部分。其中,NPM(Node Package Manager)作为 Node.j...

    5 年前
  • npm 包@material/checkbox 使用教程

    在前端开发中,复选框是一个常用的组件。使用 npm 包 @material/checkbox 可以实现一个美观而且易用的复选框。本文将为大家介绍如何使用 @material/checkbox 包。

    5 年前
  • npm 包 @material/card 使用教程

    前言 在现代化的 Web 前端开发中,使用组件化的思想已经成为一种标配,同样,基于组件的网站 UI 框架也越来越成熟。 Material Design 是一种由 Google 推出的跨平台设计语言,通...

    5 年前
  • npm 包 @material/button 使用教程

    @material/button 是一个基于 Material Design 按钮的 npm 包,它提供了许多按钮的样式和交互效果,可以轻松地在项目中使用。本篇文章将介绍如何使用它。

    5 年前
  • npm包 @limetech/material-components-web使用教程

    简介 @limetech/material-components-web是Google的Material Components for the Web的一个分支,它提供了一系列的UI组件和CSS实用工...

    5 年前

相关推荐

    暂无文章