const WebSocket = require('ws');

// 创建 WebSocket 连接
const ws = new WebSocket('ws://localhost:6800/jsonrpc');

// 监听连接成功事件 更多事件参考下方表格
ws.on('open', function open() {
    // 构造 JSON-RPC 请求
    const request = {
        jsonrpc: '2.0',
        method: 'aria2.addUri',
        id: 1,
        params: [
            // 下载链接数组,可以添加多个链接
            ['http://example.com/file1.mp4']
        ]
    };

    // 发送 JSON-RPC 请求给 Aria2 服务器
    ws.send(JSON.stringify(request));
});

// 监听服务器返回消息事件
ws.on('message', function incoming(data) {
    console.log('Server response:', data);
});
Nodejs代码
const Aria2 = require("aria2");
let options = {
  host: "nas.wfsever.cn",
  port: 6800,
  //   secure: false,
  secret: "w15978859175",
  path: "/jsonrpc",
};
const aria2 = new Aria2(options);
aria2.open();

aria2.on("open", () => {
  console.log("已连接到Aria服务器");
});

aria2.on("close", () => {
  console.log("已与Aria2服务器断开连接");
});

aria2
  .call("aria2.addUri", [
    "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_9.9.9_240401_x64_01.exe",
  ])
  .then((res) => {
    console.log("添加任务", res);
  })
  .catch((err) => {
    console.log(err);
  });

aria2
  .call("aria2.tellStatus", "97393f768e745b60")
  .then(function (res) {
    console.log("任务详情:", res);
  })
  .catch(function (err) {
    console.error("获取任务详情失败:", err);
  });
/**
 * 事件类型
 * onDownloadStart        下载开始
 * onDownloadPause        下载暂停
 * onDownloadStop        下载停止
 * onDownloadComplete    下载完成
 * onDownloadError      下载错误
 * onBtDownloadComplete  BT下载完成
 * onDownloadComplete    BT下载完成
 * onBtDownloadStart    BT下载开始
 * onBtDownloadStop    BT下载停止
 * onBtDownloadPause    BT下载暂停
 * onBtDownloadError    BT下载错误
 */
aria2.on("onDownloadStart", ([guid]) => {
  console.log("aria2 onDownloadStart", guid);
});
方法描述参数
aria2.addUri添加 HTTP/HTTPS 下载任务下载链接数组
aria2.addTorrent添加 BitTorrent 下载任务磁力链接或种子文件路径
aria2.addMetalink添加 Metalink 下载任务Metalink 文件的 URL 或者 Metalink 文件内容
aria2.addTorrentMagnet添加 BitTorrent 磁力链接下载任务磁力链接
aria2.remove移除下载任务下载任务的 GID (任务标识符)
aria2.forceRemove强制移除下载任务下载任务的 GID (任务标识符)
aria2.pause暂停下载任务下载任务的 GID (任务标识符)
aria2.pauseAll暂停所有下载任务
aria2.unpause恢复下载任务下载任务的 GID (任务标识符)
aria2.unpauseAll恢复所有下载任务
aria2.forcePause强制暂停下载任务下载任务的 GID (任务标识符)
aria2.forcePauseAll强制暂停所有下载任务
aria2.getUris获取下载任务的 URI 列表下载任务的 GID (任务标识符)
aria2.getFiles获取下载任务的文件列表下载任务的 GID (任务标识符)
aria2.getPeers获取下载任务的 Peer 列表下载任务的 GID (任务标识符)
aria2.getServers获取下载任务的服务器信息列表下载任务的 GID (任务标识符)
aria2.tellStatus获取下载任务状态下载任务的 GID (任务标识符)
aria2.getOption获取下载任务的选项信息下载任务的 GID (任务标识符)
aria2.getGlobalOption获取全局选项信息
aria2.changeOption修改下载任务的选项下载任务的 GID (任务标识符),新选项值
aria2.changeGlobalOption修改全局选项新选项值
aria2.getGlobalStat获取全局状态
aria2.purgeDownloadResult清除已完成/失败的下载任务信息
aria2.removeDownloadResult移除已完成/失败的下载任务信息下载任务的 GID (任务标识符)
aria2.getVersion获取 Aria2 版本信息
aria2.getSessionInfo获取 Aria2 会话信息
aria2.shutdown关闭 Aria2
aria2.forceShutdown强制关闭 Aria2
aria2.saveSession保存 Aria2 会话信息
aria2.multicall批量调用多个方法方法调用数组
Last modification:April 3, 2024
反正也没人会打赏