Skip to content

简介

NapLink 是一个现代化的 NapCat WebSocket 客户端 SDK,专为 TypeScript/JavaScript 开发者设计。

NapCat 是什么?

NapCat 是基于 NTQQ 的现代化 Bot 协议端实现,支持 OneBot 11 标准。它提供了稳定可靠的 QQ Bot 接口,让开发者可以轻松创建各种自动化机器人。

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次重连: 1秒后
  2. 第2次重连: 2秒后
  3. 第3次重连: 4秒后
  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  (事件路由)

下一步

Released under the MIT License.