我对节点比较陌生,我很难找到答案!
我创建了一个非常基本的节点脚本,用于连接到rs232串口设备,同时它作为websocket服务器,以便客户端可以连接到它以从rs232设备获得实时输出但是我在11个客户端连接后,不断获取事件发射器最大侦听器错误。
如果任何人可以在这里帮助我,或者如果我以错误的方式对代码进行了提供一些建议,我们将不胜感激。
由于 杰米
继承人的代码
ProcessingEnvironment.getElements()
答案 0 :(得分:1)
如果是连接处理程序,则添加新的事件处理程序serialPort.on('data', ...)
。因此,对于每个新的传入websocket连接,您都为serialPort
添加了一个新的事件处理程序。而且,你永远不会删除它们。所以,他们只是永远积累,他们也都做同样的事情。
您看到的警告是因为eventEmitter
对象看到同一消息的所有事件处理程序的累积,并怀疑某些内容可能是错误的。
相反,您可以将其移出连接处理程序,并在一个事件处理程序中执行所有处理:
serialPort.on('data', function(data) {
var weight = data.toString();
wss.clients.forEach(function(wssclient) {
wssclient.send(weight);
});
});
serialPort.on("open", function () {
console.log('open');
wss.on("connection", function(ws) {
// code here that needs to happen upon connection
});
});