电子错误| Node.js

时间:2018-06-25 01:11:11

标签: javascript node.js electron webtorrent

我正在尝试使用WebTorrent与Electron和Node.js下载torrent。好吧,这是我在main.js中的代码

const electron = require('electron')
const { app, BrowserWindow } = electron

const path = require('path')
const url  = require('url')
const server = require('./server')

let win

function createWindow() {
  win = new BrowserWindow ({ vibrancy: 'dark', width: 400, height: 600, frame: false, resizable: false, transparent: true })
  win.loadURL(url.format({
    pathname: path.join(__dirname, 'index.html'),
    protocol: 'file',
    slashes: true
  }))
}

app.on('ready', createWindow)

而我在server.js中的代码是:

require('http').createServer(function (req, res) {
  var WebTorrent = require('webtorrent-hybrid')

  var client = new WebTorrent()

  var magnetURI = 'magnet:?xt=urn:btih:EF3B95AEF1C94FC8E98825386C3B12560FE21CFF&tr=udp://glotorrents.pw:6969/announce&tr=udp://tracker.opentrackr.org:1337/announce&tr=udp://torrent.gresille.org:80/announce&tr=udp://tracker.openbittorrent.com:80&tr=udp://tracker.coppersurfer.tk:6969&tr=udp://tracker.leechers-paradise.org:6969&tr=udp://p4p.arenabg.ch:1337&tr=udp://tracker.internetwarriors.net:1337'

  client.add(magnetURI, { path: 'movies' }, function (torrent) {
    torrent.on('done', function () {
      console.log('torrent download finished')
    })
  })

  res.end('Hello from server started by Electron app!');

}).listen(9000)

问题在我运行应用程序时开始,并在控制台上显示以下消息:

(节点:9032)MaxListenersExceededWarning:检测到可能的EventEmitter内存泄漏。添加了11个就绪的侦听器。使用generator.setMaxListeners()增加限制

1 个答案:

答案 0 :(得分:0)

这只是警告!

根据Nodejs.org文档

https://nodejs.org/api/events.html#events_emitter_setmaxlisteners_n

默认情况下,如果为特定事件添加了10个以上的侦听器,则EventEmitters将打印警告。这是一个有用的默认值,有助于查找内存泄漏。显然,并非所有事件都应仅限于10个侦听器。 generator.setMaxListeners()方法允许为此特定EventEmitter实例修改限制。该值可以设置为Infinity(或0)以表示无限数量的侦听器。

因此您需要在代码中添加以下一行

“ emitter.setMaxListeners(n)”