mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Merge pull request #3344 from node-red/fix-ws-hb
Only setup ws client heartbeat once it is connected
This commit is contained in:
commit
48fb1a8127
@ -105,22 +105,24 @@ module.exports = function(RED) {
|
|||||||
if (node.isServer) {
|
if (node.isServer) {
|
||||||
node._clients[id] = socket;
|
node._clients[id] = socket;
|
||||||
node.emit('opened',{count:Object.keys(node._clients).length,id:id});
|
node.emit('opened',{count:Object.keys(node._clients).length,id:id});
|
||||||
} else {
|
|
||||||
if (node.heartbeat) {
|
|
||||||
node.heartbeatInterval = setInterval(function() {
|
|
||||||
if (socket.nrPendingHeartbeat) {
|
|
||||||
// No pong received
|
|
||||||
socket.terminate();
|
|
||||||
socket.nrErrorHandler(new Error("timeout"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
socket.nrPendingHeartbeat = true;
|
|
||||||
socket.ping();
|
|
||||||
},node.heartbeat);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
socket.on('open',function() {
|
socket.on('open',function() {
|
||||||
if (!node.isServer) {
|
if (!node.isServer) {
|
||||||
|
if (node.heartbeat) {
|
||||||
|
clearInterval(node.heartbeatInterval);
|
||||||
|
node.heartbeatInterval = setInterval(function() {
|
||||||
|
if (socket.nrPendingHeartbeat) {
|
||||||
|
// No pong received
|
||||||
|
socket.terminate();
|
||||||
|
socket.nrErrorHandler(new Error("timeout"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
socket.nrPendingHeartbeat = true;
|
||||||
|
try {
|
||||||
|
socket.ping();
|
||||||
|
} catch(err) {}
|
||||||
|
},node.heartbeat);
|
||||||
|
}
|
||||||
node.emit('opened',{count:'',id:id});
|
node.emit('opened',{count:'',id:id});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user