From 578bb9e81e2a6f028e0389b509138330d2024cab Mon Sep 17 00:00:00 2001 From: Daniel Ennis Date: Mon, 10 Feb 2020 13:19:25 -0500 Subject: [PATCH] Fire event for another node being demoted Also fix casing in the jsdoc (since casing does matter) --- lib/discover.js | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/lib/discover.js b/lib/discover.js index edc27ef..a81b3c3 100644 --- a/lib/discover.js +++ b/lib/discover.js @@ -3,25 +3,26 @@ * Node Discover * * Attributes - * Nodes + * nodes * * Methods - * Promote - * Demote - * Join - * Leave - * Advertise - * Send - * Start - * Stop - * EachNode(fn) + * promote + * demote + * join + * leave + * advertise + * send + * start + * stop + * eachNode(fn) * * Events - * Promotion - * Demotion - * Added - * Removed - * Master + * promotion + * demotion + * added + * removed + * master + * masterDemoted * * * checkInterval should be greater than hello interval or you're just wasting cpu @@ -35,7 +36,7 @@ var Network = require('./network.js'), EventEmitter = require('events').EventEmitter, util = require('util'); -var reservedEvents = ['promotion', 'demotion', 'added', 'removed', 'master', 'hello']; +var reservedEvents = ['promotion', 'demotion', 'added', 'removed', 'master', 'masterDemoted', 'hello']; module.exports = Discover; @@ -230,12 +231,14 @@ function Discover (options, callback) { self.emit("master", node, obj, rinfo); } + } else if (wasMaster) { + self.emit("masterDemoted", node, obj, rinfo); } self.emit("helloReceived", node, obj, rinfo, isNew, wasMaster); }; - self.broadcast.on("hello", self.evaluateHello); + self.broadcast.on("hello", self.evaluateHello.bind(self)); self.broadcast.on("error", function (error) { self.emit("error", error);