@bsv/authsocket-client

中文文档
2.1.10发布于 2026/10/28SEE LICENSE IN LICENSE.txtTypeScriptESM + CJS构建来源已验证近 30 天下载 6888

相互认证的 Web Sockets 客户端

中文使用文档
文档目录11 节
  1. 概览
  2. 安装
  3. 使用量
  4. 失败隔离和资源限制
  5. 如何运作(蝴蝶)
  6. 详细解释
  7. 套接字运输
  8. 自动锁定客户端
  9. 许可证
  10. 发展和分配
  11. SDK4 热补丁对等要求

AuthSocket( 客户端)

补丁候选人 2.1.10 更新打包的第一当事方运行时间或开发依赖范围。 此只使用元数据补丁保存了公共API,对等范围,有线格式和默认. 不需要额外的消费者或数据迁移;早期的迁移指南仍然适用.

概览

此软件包提供了 滴入客户端解决方案 为苏克特。 IO 那个 标志 外出信息和 核实 使用 BRC-103 红十字与红新月联会。 。 。 .

  • 与 @bsv/authsocket 或任何BRC-103兼容服务器.
  • 与正常相比的最小变化 socket.io-client 用途.

安装

安装客户端及其所需的 SDK 端口 :

npm install @bsv/authsocket-client @bsv/sdk

提供BRC-103兼容 Wallet,例如来自 @bsv/sdk。 。 。 .

使用量

下面是一个最小的客户端代码 包 socket.io-client数字 :

import { AuthSocketClient } from '@bsv/authsocket-client'
import { ProtoWallet } from '@bsv/sdk' // your BRC-103-compatible wallet

// Create or load your local BRC-103 wallet
const clientWallet = new ProtoWallet('client-private-key-hex')

// Wrap the normal Socket.IO client with AuthSocketClient
const socket = AuthSocketClient('http://localhost:3000', {
  wallet: clientWallet,
  onError: (error, context) => {
    // Context identifies the phase and event without copying the remote payload.
    console.error(context.phase, context.eventName, error)
  }
})

// Standard Socket.IO usage
socket.on('connect', () => {
  console.log('Socket.IO transport connected. Socket ID:', socket.id)

  // Emit a sample message
  socket.emit('chatMessage', {
    text: 'Hello from client!'
  })
})

socket.on('chatMessage', msg => {
  console.log('Server says:', msg)
})

socket.on('disconnect', () => {
  console.log('Disconnected from server')
})
  1. 使用 AuthSocketClient(serverUrl, options) 创建 BRC-103 安全套接字客户端.
  2. 与 .on(...), (中文(简体) ), .emit(...) 和平常一样.
  3. 在幕后,每个消息都由您的客户端钱包密钥签名并由服务器验证. 入境消息也经过核实.

标准 connect 事件和 connected 属性仅报告基础 袜子。 IO运输. 他们没有断言服务器完成了BRC-103 认证。 境外应用程序 emit 手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手握手 发送其签名的普通信件; 输入应用程序回调只运行于 已校验一般信件。 对于需要已知服务器的局部副作用, 配置 expectedServerIdentityKey 等待一个经过验证的应用事件, 不仅仅是 connect。 。 。 .

远程端点必须使用 https:// 或者说 wss://; 仅接受正文 用于精确回转主机。 BRC- 103 认证信件但不加密 有效载荷或袜子。 IO元数据,因此TLS在生产中仍然具有强制性. 这个 选项 expectedServerIdentityKey 绑定连接到已知的 cononical BRC-103服务器身份. 在省略时,客户端将绑定在 第一次验证此连接的应用程序消息 。 URL 授权和 TLS 校验覆盖于 managerOptions 被拒绝; 使用信任的自定义 CA 同时保留私人公用钥匙基础结构证书验证.

经认证的事件数据准确地保存了所支持的JSON,包括平面 名称下的数字键对象 data, (中文(简体) ), payload, (中文(简体) ), transaction,以及 tx实值 Uint8Array 值被序列化为可移动数字数组。 代码 拥有打入的付款或钱包协议可回收历史 数字键字节对象在协议的明确字节字段收到后. 非 JSON 值, 负零, 嵌入 undefined,存取器,隐藏/外 属性,稀有的数组,和串行钩子在签名前被拒绝.

失败隔离和资源限制

认证框架和应用程序召回包含在 客户端连接 。 如果服务器发送一个框架失败 BRC-103 处理,或 事件召回或拒绝,客户端断开而不创建 毫无顾忌的拒绝承诺 可选 onError(error, context) 钩子是 并且其上下文不包括远程 有效载荷或钱包材料.

客户端最多可同时处理32个认证信息 默认。 设定 maxPendingAuthMessages 到正安全整数 不同绑定;超过它的服务器被断开.

经认证的应用程序帧默认为 1 MiB 编码限制 。 设定 maxEventPayloadBytes 如果需要,则改为正安全整数。 事件名称 被绑定,不能使用 Socket。 IO 生命周期名称或内部 _unknown 哨兵们 不发出不规范、超大小或保留名称框架.

如何运作(蝴蝶)

  • AuthSocketClient 创建内部 BRC-103 Peer 处理:
    • 为每条发出的信息生成无头和签名.
    • 使用服务器的公用密钥验证服务器的输入信件 .
  • 特别的 'authMessage' 通道用于基础的BRC-103握手. 你只和标准套接字互动 IO 事件名称( 如 'chatMessage'),作为 AuthSocketClient 自动重新发送它们.

详细解释

套接字运输

  • 执行 BRC-103 红十字与红新月联会 Transport 界面.
  • 利用基础 socket.io-client 用于原始消息通过 'authMessage' 频道.
  • BRC-103号协议 Peer 调用此传输以发送和接收 BRC-103 框架.
  • 拒绝或同步认证失败在成为无所处理的拒绝之前被控制.

自动锁定客户端

  • 返回类似代理客户端套接字的函数 .
  • 里面写着:
    1. 创建真实 io(url, managerOptions) 从 socket.io-client。 。 。 .
    2. 附 录a SocketClientTransport。 。 。 .
    3. 创建一个 Peer 还有你的 wallet。 。 。 .
    4. 提供最终对象 .on(eventName, callback) 财务报告和审定财务报表 .emit(eventName, data) 方法。 。 .

说明: 如果你想看到一个 完全端对端 例如,将服务器代码从 authsocket README 有客户端代码 authsocket-client 读取,然后运行两个。 您应该安全地看到信件的交换和显示相互认证的日志 .

许可证

TS 堆放第一当事方材料 打开 BSV 许可证版本 6。 。 。 . UMD 捆绑包含单独许可的 SDK 材料; 保留 第三次议会 NoTICES.md 财务报告和审定财务报表 属性/ 与捆绑.

发展和分配

Npm tarball 包含针对浏览器的ESM和 CommonJS 的切入点,来源 地图,两个模块系统的申报,以及一个UMD构建. 调取请求和 释放应运行 :

pnpm format:check
pnpm lint
pnpm typecheck
pnpm test:coverage
pnpm build
pnpm pack:check
pnpm test:browser

pack:check 验证准确的 npm 沥青球 publint严格无害环境管理 通用JS类型分辨率,以及清洁的消费装置. test:browser 核查装有Vite、Esbuild和UMD文物以及 执行存储器的压缩大小预算. 软件包使用 Open BSV许可证第6版;存储器许可证管制确保清单, 包括许可证 包装的文物保持同步.

SDK4 热补丁对等要求

SDK4 对等替代开始于 @bsv/sdk ^4.0.1,恢复数字 钱包结果和遗留线条相容性。 现有的SDK2/3替代品和 下限不变。 SDK4 用户应安装 4. 0.1 个热补丁; 不 需要应用程序-wallet线或数据迁移.

版本与发布记录

@bsv/authsocket-client 共发布 27 个版本,首次发布于 2025/03/13;过去 12 个月发布了 14 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.1.10latest2026/10/2811 天前
2.1.92026/10/2415 天前
2.1.82026/10/031 个月前
2.1.72026/09/231 个月前
2.1.62026/08/282 个月前
2.1.52026/08/152 个月前

关于 @bsv/authsocket-client 的常见问题

@bsv/authsocket-client 是什么?

相互认证的 Web Sockets 客户端

如何安装 @bsv/authsocket-client?

在项目目录运行 npm install @bsv/authsocket-client,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@bsv/sdk(^2.4.1 || ^3.0.0 || ^4.0.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@bsv/authsocket-client 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@bsv/authsocket-client 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@bsv/authsocket-client 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@bsv/authsocket-client 可以商用吗?

@bsv/authsocket-client 使用 SEE LICENSE IN LICENSE.txt 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@bsv/authsocket-client 的下载量有多少?

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

@bsv/authsocket-client 还在维护吗?

最新版本 2.1.10 发布于 2026/10/28(11 天前);至今共发布 27 个版本,其中过去 12 个月发布了 14 个;首次发布于 2025/03/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。