@balena/happy-eyeballs

中文文档
0.0.6发布于 2021/12/01ISCCommonJS近 30 天下载 4906

补丁 http(s). 代理执行快乐眼球2(rfc8305), IETF 公布的标准

中文使用文档
文档目录5 节
  1. @balena-io/快乐眼球
  2. 安装
  3. 快速使用
  4. 明确用途
  5. 解释

@balena-io/快乐眼球

此软件包补丁了节点JS http(s).Agent 执行 IETF 标准,"快乐眼球2"(rfc8305 (中文(简体) )) (中文(简体) ).

它通过尝试同时尝试一个给定的主机名的多个ip地址来提高客户端的性能和可靠性. 见 解释 更详细.

安装

npm i --save-dev @balena/happy-eyeballs
yarn add --dev @balena/happy-eyeballs

快速使用

要使用此库, 只需导入

import '@balena/happy-eyeballs/eye-patch';

或者说

require('@balena/happy-eyeballs/eye-patch')

在你的顶部 .js编号 :.ts 条目文件.

注:将替换 http.Agent.prototype.createConnection 财务报告和审定财务报表 https.Agent.prototype.createConnection,但它试图尽可能保留现有的功能.

明确用途

如果你想更明确,你可以明确补丁 http(s).Agent数字 :

import { patch } from '@balena/eye-patch';
import { Agent as HttpAgent } from 'http';
import { Agent as HttpsAgent } from 'https';

patch(HttpAgent, {delay: 300});
patch(HttpsAgent, {delay: 300});

虽然,这正是什么 import '@balena/happy-eyeballs/eye-patch'; 无论如何.

请注意: delay 指的是在尝试下一个地址之前的延迟。 这是浏览器使用的延迟 .

稍后您可以解开后缀, 这将取消最后的补丁 :

unpatch([HttpsAgent, HttpAgent])

或重置到代理的原始值 :

reset([HttpsAgent, HttpAgent])

另外,请注意,违约是 HttpAgent 财务报告和审定财务报表 HttpsAgent,因此,这与

reset()

接下来 patch 财务报告和审定财务报表 unpatch 我也一样.

你也可以执行自己的经纪人 并替换 createConnection 方法 :

import { createConnection } from '@balena/happy-eyeballs';
import { Agent as HttpAgent } from 'http';
import { Agent as HttpsAgent } from 'https';

export class MyHttpAgent extends HttpAgent {
  createConnection = createConnection;
  delay = 250;
}

export class MyHttpsAgent extends HttpsAgent {
  createConnection = createConnection;
  delay = 250;
}

这和以前的例子基本相同.

解释

基本上,算法相当于:

  1. 接收主机名
  2. 我们以前和这个东道主有联系吗?
  • 如果是:
    • 尝试上次成功连接的家族( Ipv4 或 IPv6), 如果我们之前已经连接到此主机
    • 如果在300米范围内连接不成功,请继续下一步
  • 如果没有,请采取下一步行动.
  1. DNS查询是否同时返回IPv4和IPv6地址?
  • 如果是:尝试,在全部试验之前,两个地址同时进行
  • 如果不是:只要试试现存家庭的地址
  1. 将每个地址按链条排列,同时对两个家庭进行试验,直至: *. 已连接 *. 所有连接尝试超时 *. 所有连接尝试失败
  2. 如果没有连接成功, 请返回第一次连接尝试出错, 或是“ 超时出错 ”

版本与发布记录

@balena/happy-eyeballs 共发布 19 个版本,首次发布于 2021/11/18;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.6latest2021/12/014 年前
0.0.6-package-build-3cc0eb6f13ac1fc755cf10a0fc940ade1b606e322021/11/304 年前
0.0.6-package-build-a554def501c1c94944101917c473d7b8e60a2fb62021/11/304 年前
0.0.6-package-build-0f1f94a5f02402fc8c81564104cad20efe254bbc2021/11/304 年前
0.0.6-package-build-cacfde8ffb2b7bbb10cdc25f3b3cda7db07ef5b22021/11/304 年前
0.0.6-package-build-74550418be6d7c21ba65150904f645504b4edbe12021/11/304 年前

关于 @balena/happy-eyeballs 的常见问题

@balena/happy-eyeballs 是什么?

补丁 http(s). 代理执行快乐眼球2(rfc8305), IETF 公布的标准

如何安装 @balena/happy-eyeballs?

在项目目录运行 npm install @balena/happy-eyeballs,或使用 pnpm add / yarn add / bun add。

@balena/happy-eyeballs 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/balena__happy-eyeballs 是否存在。

@balena/happy-eyeballs 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@balena/happy-eyeballs 可以商用吗?

@balena/happy-eyeballs 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@balena/happy-eyeballs 的下载量有多少?

根据 npm 官方下载统计,@balena/happy-eyeballs 在 2026/10/08 – 2026/11/06 这 30 天内被下载 4,906 次,日均约 164 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@balena/happy-eyeballs 还在维护吗?

最新版本 0.0.6 发布于 2021/12/01(4 年前);至今共发布 19 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/11/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。