From 12d85b109255ab737a8f89694e8b6600941f7a48 Mon Sep 17 00:00:00 2001 From: Paris Holley Date: Thu, 30 Aug 2012 11:47:49 -0500 Subject: [PATCH] support for pusher stats api --- lib/node-pusher.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/lib/node-pusher.js b/lib/node-pusher.js index f03f162..e009068 100644 --- a/lib/node-pusher.js +++ b/lib/node-pusher.js @@ -22,6 +22,41 @@ module.exports = (function() { return(returnHash); } + Pusher.prototype.stats = function(channel, callback){ + var timestamp = parseInt(new Date().getTime() / 1000); + + var path = '/apps/' + this.options.appId + '/channels/' + channel + '/stats'; + + var params = [ + 'auth_key=', this.options.key, + '&auth_timestamp=', timestamp, + '&auth_version=', '1.0' + ]; + + var queryString = params.join(''); + + var signData = ['GET', path, queryString].join('\n'); + var signature = crypto.createHmac('sha256', this.options.secret).update(signData).digest('hex'); + + path = "http://" + this.domain + path + '?' + queryString + '&auth_signature=' + signature; + + http.get(path, function(res){ + var data = ''; + + res.on('data', function(chunk) { + data += chunk; + }); + + res.on('end', function(){ + callback(null, JSON.parse(data)); + }); + }).on('error', function(e) { + callback(e); + }); + + return this; + } + Pusher.prototype.trigger = function(channel, event, message, socketId, callback) { if (typeof callback === 'undefined') { callback = socketId;