mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Merge branch 'master' into dev
This commit is contained in:
@@ -115,7 +115,7 @@
|
||||
timeoutUnits: {value:"seconds"},
|
||||
rate: {value:"1", required:true, validate:function(v) { return RED.validators.number(v) && (v >= 0); }},
|
||||
nbRateUnits: {value:"1", required:false,
|
||||
validate:function(v) { return RED.validators.number(v) && (v >= 0); }},
|
||||
validate:function(v) { return v === undefined || (RED.validators.number(v) && (v >= 0)); }},
|
||||
rateUnits: {value: "second"},
|
||||
randomFirst: {value:"1", required:true, validate:function(v) { return RED.validators.number(v) && (v >= 0); }},
|
||||
randomLast: {value:"5", required:true, validate:function(v) { return RED.validators.number(v) && (v >= 0); }},
|
||||
|
@@ -637,24 +637,8 @@ module.exports = function(RED) {
|
||||
|
||||
node.deregister = function(mqttNode,done) {
|
||||
delete node.users[mqttNode.id];
|
||||
if (node.closing) {
|
||||
return done();
|
||||
}
|
||||
if (Object.keys(node.users).length === 0) {
|
||||
if (node.client && node.client.connected) {
|
||||
// Send close message
|
||||
if (node.closeMessage) {
|
||||
node.publish(node.closeMessage,function(err) {
|
||||
node.client.end(done);
|
||||
});
|
||||
} else {
|
||||
node.client.end(done);
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
if (node.client) { node.client.end(); }
|
||||
return done();
|
||||
}
|
||||
if (!node.closing && node.connected && Object.keys(node.users).length === 0) {
|
||||
node.disconnect();
|
||||
}
|
||||
done();
|
||||
};
|
||||
@@ -663,6 +647,7 @@ module.exports = function(RED) {
|
||||
}
|
||||
node.connect = function (callback) {
|
||||
if (node.canConnect()) {
|
||||
node.closing = false;
|
||||
node.connecting = true;
|
||||
setStatusConnecting(node, true);
|
||||
try {
|
||||
@@ -672,6 +657,7 @@ module.exports = function(RED) {
|
||||
let callbackDone = false; //prevent re-connects causing node.client.on('connect' firing callback multiple times
|
||||
// Register successful connect or reconnect handler
|
||||
node.client.on('connect', function (connack) {
|
||||
node.closing = false;
|
||||
node.connecting = false;
|
||||
node.connected = true;
|
||||
if(!callbackDone && typeof callback == "function") {
|
||||
@@ -740,6 +726,7 @@ module.exports = function(RED) {
|
||||
reasonCode: rc,
|
||||
reasonString: rs
|
||||
}
|
||||
node.connected = false;
|
||||
node.log(RED._("mqtt.state.broker-disconnected", details));
|
||||
setStatusDisconnected(node, true);
|
||||
});
|
||||
@@ -764,25 +751,31 @@ module.exports = function(RED) {
|
||||
}
|
||||
};
|
||||
node.disconnect = function (callback) {
|
||||
const _callback = function () {
|
||||
const _callback = function (resetNodeConnectedState) {
|
||||
setStatusDisconnected(node, true);
|
||||
node.connecting = false;
|
||||
node.connected = false;
|
||||
if(resetNodeConnectedState) {
|
||||
node.closing = true;
|
||||
node.connecting = false;
|
||||
node.connected = false;
|
||||
}
|
||||
callback && typeof callback == "function" && callback();
|
||||
};
|
||||
|
||||
if(node.client) {
|
||||
if(node.client.connected && node.closeMessage) {
|
||||
node.publish(node.closeMessage, function (err) {
|
||||
node.client.end(_callback);
|
||||
});
|
||||
} else if(node.client.connected || node.client.reconnecting) {
|
||||
node.client.end(_callback);
|
||||
} else if(node.client.disconnecting || node.client.connected === false) {
|
||||
_callback();
|
||||
}
|
||||
if(node.closing) {
|
||||
return _callback(false);
|
||||
}
|
||||
var endCallBack = function endCallBack() {
|
||||
}
|
||||
if(node.connected && node.closeMessage) {
|
||||
node.publish(node.closeMessage, function (err) {
|
||||
node.client.end(endCallBack);
|
||||
_callback(true);
|
||||
});
|
||||
} else if(node.connected) {
|
||||
node.client.end(endCallBack);
|
||||
_callback(true);
|
||||
} else {
|
||||
_callback();
|
||||
_callback(false);
|
||||
}
|
||||
}
|
||||
node.subscriptionIds = {};
|
||||
@@ -1074,6 +1067,8 @@ module.exports = function(RED) {
|
||||
node.brokerConn.unsubscribe(node.topic,node.id, removed);
|
||||
}
|
||||
node.brokerConn.deregister(node, done);
|
||||
} else {
|
||||
done();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
@@ -1134,7 +1129,11 @@ module.exports = function(RED) {
|
||||
}
|
||||
node.brokerConn.register(node);
|
||||
node.on('close', function(done) {
|
||||
node.brokerConn.deregister(node,done);
|
||||
if (node.brokerConn) {
|
||||
node.brokerConn.deregister(node,done);
|
||||
} else {
|
||||
done();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
node.error(RED._("mqtt.errors.missing-config"));
|
||||
|
@@ -291,8 +291,8 @@
|
||||
"hour": "時間",
|
||||
"days": "日",
|
||||
"day": "日",
|
||||
"between": "頻度",
|
||||
"and": "回/",
|
||||
"between": "範囲",
|
||||
"and": "〜",
|
||||
"rate": "流量",
|
||||
"msgper": "メッセージ/",
|
||||
"queuemsg": "中間メッセージをキューに追加",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@node-red/nodes",
|
||||
"version": "2.2.0",
|
||||
"version": "2.2.2",
|
||||
"license": "Apache-2.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -17,12 +17,12 @@
|
||||
"dependencies": {
|
||||
"acorn": "8.7.0",
|
||||
"acorn-walk": "8.2.0",
|
||||
"ajv": "8.9.0",
|
||||
"ajv": "8.10.0",
|
||||
"body-parser": "1.19.1",
|
||||
"cheerio": "1.0.0-rc.10",
|
||||
"content-type": "1.0.4",
|
||||
"cookie-parser": "1.4.6",
|
||||
"cookie": "0.4.1",
|
||||
"cookie": "0.4.2",
|
||||
"cors": "2.8.5",
|
||||
"cronosjs": "1.7.1",
|
||||
"denque": "2.0.1",
|
||||
@@ -36,11 +36,11 @@
|
||||
"is-utf8": "0.2.1",
|
||||
"js-yaml": "3.14.1",
|
||||
"media-typer": "1.1.0",
|
||||
"mqtt": "4.3.4",
|
||||
"mqtt": "4.3.5",
|
||||
"multer": "1.4.4",
|
||||
"mustache": "4.2.0",
|
||||
"on-headers": "1.0.2",
|
||||
"raw-body": "2.4.2",
|
||||
"raw-body": "2.4.3",
|
||||
"tough-cookie": "4.0.0",
|
||||
"uuid": "8.3.2",
|
||||
"ws": "7.5.6",
|
||||
|
Reference in New Issue
Block a user