简介
NapLink 是一个现代化的 NapCat WebSocket 客户端 SDK,专为 TypeScript/JavaScript 开发者设计。
NapCat 是什么?
NapCat 是基于 NTQQ 的现代化 Bot 协议端实现,支持 OneBot 11 标准。它提供了稳定可靠的 QQ Bot 接口,让开发者可以轻松创建各种自动化机器人。
NapLink 是什么?
NapLink 是连接到 NapCat 服务的客户端 SDK。它封装了 WebSocket 通信细节,提供了:
- 🔐 类型安全的 API - 完整的 TypeScript 支持
- 🔄 自动重连 - 指数退避算法避免重连风暴
- ⏱️ 超时控制 - 防止请求永久挂起
- 📊 事件系统 - 完整的 OneBot 11 事件支持
- 🛡️ 错误处理 - 结构化的错误信息
特性
现代化设计
NapLink 使用最新的 TypeScript 和 ES2022 特性,提供一流的开发体验:
typescript
// 完整的类型推导
const info = await client.getLoginInfo();
// info 类型自动推导
// 事件类型安全
client.on('message.group', (data) => {
// data 类型自动推导为群消息
});智能重连
内置指数退避重连机制,自动处理网络波动:
typescript
const client = new NapLink({
reconnect: {
enabled: true,
maxAttempts: 10,
backoff: {
initial: 1000, // 1秒
max: 60000, // 最多60秒
multiplier: 2, // 每次翻倍
},
},
});连接断开后,NapLink 会自动:
- 第1次重连: 1秒后
- 第2次重连: 2秒后
- 第3次重连: 4秒后
- ...以此类推,直到最多60秒
超时控制
所有 API 调用和连接操作都有超时保护:
typescript
const client = new NapLink({
connection: {
timeout: 30000, // 连接超时30秒
},
api: {
timeout: 10000, // API超时10秒
retries: 3, // 失败重试3次
},
});完善的日志
分级日志系统,方便调试:
typescript
const client = new NapLink({
logging: {
level: 'debug', // debug | info | warn | error | off
},
});架构概览
NapLink (主类)
├── ConnectionManager (连接管理)
│ ├── ReconnectService (重连服务)
│ └── HeartbeatService (心跳服务)
├── ApiClient (API客户端)
└── EventRouter (事件路由)