socket-heartbeat
Version:
A simple complete heart-beat solution for node sockets
22 lines (17 loc) • 443 B
text/coffeescript
a = require('chai').assert
Promise = require('bluebird')
GLOBAL.Promise = Promise
GLOBAL.a = a
GLOBAL.eq = a.deepEqual
GLOBAL.lo = require('lodash')
GLOBAL.times = (goal, o, evt)->
results = []
new Promise (r, rj)->
o.on evt, ->
results.push lo.toArray(arguments)
if results.length is goal
o.removeListener 'error', rj
r results
o.once 'error', rj
GLOBAL.once = (o, evt)->
times(1, o, evt).get(0)