Raspberry PI节点EventEmitter内存泄漏

时间:2014-07-27 12:31:43

标签: linux node.js

我正在使用Raspberry PI上的johnny-five节点模块使用以下脚本驱动机器人上的一些伺服器

var five = require('johnny-five'), board, servo, led;

board = new five.Board();

board.on('ready', function(){
        servo = new five.Servo({pin: 9, range:[0,180]});

        // Allow direct commandline access
        board.repl.inject({s: servo});
});

在使用节点0.10.29-1

的Raspberry PI上运行此代码时出现以下错误
 1(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
 Trace
     at process.EventEmitter.addListener (events.js:160:15)
     at process.on.process.addListener (node.js:768:26)
     at Board.broadcast (/home/pi/sonny/node_modules/johnny-five/lib/board.js:375:15)
     at Board.<anonymous> (/home/pi/sonny/node_modules/johnny-five/lib/board.js:154:18)
     at SerialPort.<anonymous> (/home/pi/sonny/node_modules/johnny-five/node_modules/firmata/lib/firmata.js:418:13)
     at SerialPort.EventEmitter.emit (events.js:95:17)
     at /home/pi/sonny/node_modules/johnny-five/node_modules/serialport/serialport.js:230:16

 Need to setMaxListeners somewhere in the code.

但是,如果我在我的笔记本上运行此代码(Linux Mint 14 +节点0.10.20),它可以正常工作。

有没有办法在Raspberry PI上全局设置MaxListeners(运行raspbian)?

如果没有,我如何将setMaxListeners添加到我的代码中?

1 个答案:

答案 0 :(得分:1)

这结果是树莓派的权力问题。一旦我将电机放在一个单独的电源上但是有一个共同的地面,一切都开始工作了。