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')
})
- 使用
AuthSocketClient(serverUrl, options)创建 BRC-103 安全套接字客户端. - 与
.on(...), (中文(简体) ),.emit(...)和平常一样. - 在幕后,每个消息都由您的客户端钱包密钥签名并由服务器验证. 入境消息也经过核实.
标准 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-103Peer处理:- 为每条发出的信息生成无头和签名.
- 使用服务器的公用密钥验证服务器的输入信件 .
- 特别的
'authMessage'通道用于基础的BRC-103握手. 你只和标准套接字互动 IO 事件名称( 如'chatMessage'),作为AuthSocketClient自动重新发送它们.
详细解释
套接字运输
- 执行 BRC-103 红十字与红新月联会
Transport界面. - 利用基础
socket.io-client用于原始消息通过'authMessage'频道. - BRC-103号协议
Peer调用此传输以发送和接收 BRC-103 框架. - 拒绝或同步认证失败在成为无所处理的拒绝之前被控制.
自动锁定客户端
- 返回类似代理客户端套接字的函数 .
- 里面写着:
- 创建真实
io(url, managerOptions)从socket.io-client。 。 。 . - 附 录a
SocketClientTransport。 。 。 . - 创建一个
Peer还有你的wallet。 。 。 . - 提供最终对象
.on(eventName, callback)财务报告和审定财务报表.emit(eventName, data)方法。 。 .
- 创建真实
说明: 如果你想看到一个 完全端对端 例如,将服务器代码从
authsocketREADME 有客户端代码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线或数据迁移.