在NodeJS中重新分配事件发射器

时间:2017-06-30 10:44:32

标签: javascript node.js javascript-events mqtt eventemitter

我正在使用MQTT npm模块。 触发myMqttObj.on('close',...)事件时,我调用myMqttObj.end(),然后使用新连接重新分配:

 myMqttObj= mqtt.connect(....)

通过这种方式,所有以前的myMqttObj.on()方法都在监听新的发射器。 这一切都很有效

现在我正在尝试创建自己的方法来创建具有相同npm模块的新MQTT连接。我只想隐藏MQTT连接参数,调用自定义方法,并将一个简单的字符串作为参数:

var mySDK= require('./mySDK');
mySDK.mqttConnect("input",function(_inMqtt){
    if(_inMqtt!=null){
        inMqtt=_inMqtt;  //inMqtt is a global variable

        inMqtt.on('connect', function() {
           //do something here
        });

        inMqtt.on('close', function() {
            inMqtt.end();
            mySDK.mqttConnect("input",function(_inMqtt){
                inMqtt=_inMqtt;  //this assignment to the same Client object doesn't work
            });
        });
});

mqttConnect方法只需调用mqtt.connect方法并返回Client对象。

我希望所有inMqtt.on()函数现在都在侦听新的Client对象,而不是没有捕获事件。 有什么问题?

0 个答案:

没有答案