Comparing version 0.0.1 to 0.0.2
@@ -46,3 +46,3 @@ var SendEmitter = require('./send_emitter') | ||
// Helper to handle reconnection logic | ||
function reconnector () { | ||
function reconnector (err) { | ||
ev.ready = false; | ||
@@ -52,4 +52,5 @@ ev.emit('disconnect'); | ||
if (ev._reconnect) { | ||
var delay = Math.min(ev._retryTimeoutMax, Math.pow(ev._retryTimeout, ev._retries)); | ||
ev._retries++; | ||
setTimeout(ev.reconnect.bind(ev), ev._retryTimeout * ev._retries); | ||
setTimeout(ev.reconnect.bind(ev), delay); | ||
} | ||
@@ -91,3 +92,3 @@ } | ||
Client.prototype.autoReconnect = function (min) { | ||
Client.prototype.autoReconnect = function (min, max) { | ||
var ev = this; | ||
@@ -98,9 +99,11 @@ | ||
min || (min = 100); | ||
max || (max = 1000000000); | ||
this._reconnect = true; | ||
this._retries = 0; | ||
this._retryTimeout = min; | ||
this._retryTimeoutMax = max; | ||
function done () { | ||
ev.once('connect', function () { | ||
ev.autoReconnect(min); | ||
ev.autoReconnect(min, max); | ||
}); | ||
@@ -107,0 +110,0 @@ } |
@@ -14,5 +14,9 @@ var events = require('events') | ||
var ready = false; | ||
this.buffer = []; | ||
this.__defineSetter__('ready', function (v) { | ||
this.emit('ready'); | ||
var step; | ||
ready = v; | ||
if (ready) { | ||
while (step = this.buffer.shift()) step(); | ||
} | ||
}); | ||
@@ -116,3 +120,3 @@ this.__defineGetter__('ready', function () { | ||
var ev = this; | ||
this.once('ready', function () { | ||
this.buffer.push(function () { | ||
ev._send.apply(ev, args); | ||
@@ -119,0 +123,0 @@ }); |
{ | ||
"name": "uhura", | ||
"version": "0.0.1", | ||
"version": "0.0.2", | ||
"description": "server-to-server event emitter wire protocol", | ||
@@ -20,2 +20,2 @@ "main": "index.js", | ||
} | ||
} | ||
} |
@@ -5,6 +5,8 @@ var Uhura = require('../'); | ||
return function () { | ||
t-- && t == 0 && fn(); | ||
} | ||
t-- && t === 0 && fn(); | ||
}; | ||
} | ||
var port = 12345; | ||
describe('session', function () { | ||
@@ -19,7 +21,7 @@ this.timeout(5000); | ||
}); | ||
server.listen(4567); | ||
server.listen(port); | ||
var c = Uhura.createClient(port); | ||
c.autoReconnect(); | ||
var c = Uhura.createClient(4567); | ||
c.autoReconnect(); | ||
var sessionID; | ||
@@ -41,17 +43,15 @@ c.once('connect', function () { | ||
var server = Uhura.createServer(function (s) { | ||
server.close(function () { | ||
c.get('foo').should.equal('bar'); | ||
next(); | ||
}); | ||
c.once('_set', function () { | ||
s.disconnect(); | ||
}); | ||
s.set('foo', 'bar'); | ||
}); | ||
server.listen(4567); | ||
server.listen(port); | ||
var c = Uhura.createClient(4567); | ||
c.on('_set', function () { | ||
process.nextTick(function () { | ||
c.get('foo').should.equal('bar'); | ||
c.disconnect(); | ||
}); | ||
}); | ||
c.on('disconnect', function () { | ||
server.close(next); | ||
}); | ||
var c = Uhura.createClient(port); | ||
}); | ||
@@ -62,18 +62,18 @@ | ||
s.on('_set', function () { | ||
process.nextTick(function () { | ||
s.get('foo').should.equal('bar'); | ||
s.disconnect(); | ||
}); | ||
process.nextTick(function () { | ||
s.get('foo').should.equal('bar'); | ||
s.disconnect(); | ||
}); | ||
}); | ||
}); | ||
server.listen(4567); | ||
server.listen(port); | ||
var c = Uhura.createClient(4567); | ||
var c = Uhura.createClient(port); | ||
c.on('connect', function () { | ||
c.set('foo', 'bar'); | ||
}); | ||
c.on('disconnect', function () { | ||
server.close(next); | ||
}); | ||
c.on('disconnect', function () { | ||
server.close(next); | ||
}); | ||
}); | ||
}); |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
18042
546
3