Ошибка в электронном |Node.js - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь скачать торрент с Electron и Node.js, используя WebTorrent .Ну, это мой код в 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 готовых слушателей.Используйте emitter.setMaxListeners (), чтобы увеличить предел

1 Ответ

0 голосов
/ 25 июня 2018

Это просто предупреждение !!!

Согласно документации Nodejs.org

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

По умолчанию EventEmitters выводит предупреждение, если для определенного события добавлено более 10 слушателей. Это полезное значение по умолчанию, которое помогает найти утечки памяти. Очевидно, что не все события должны быть ограничены только 10 слушателями. Метод emitter.setMaxListeners () позволяет изменять ограничение для этого конкретного экземпляра EventEmitter. Значение может быть установлено в бесконечность (или 0), чтобы указать неограниченное количество слушателей.

Так что вам нужно добавить строку ниже в вашем коде

"emitter.setMaxListeners (п)"

...