MadLittleMods
4/22/2016 - 6:24 PM

#gitter-eyeballs-stream.js

// Authentication extension for Faye
var ClientAuthExt = function(opts) {
  this.token = opts.token;
  this.clientType = opts.clientType;
};

ClientAuthExt.prototype.outgoing = function(message, callback) {
  if (message.channel == '/meta/handshake') {
    if (!message.ext) message.ext = {};
    if (this.clientType) message.ext.client = this.clientType;
    message.ext.token = this.token;
  }

  callback(message);
};


module.exports = ClientAuthExt;
var Halley = require('halley');
var ClientAuthExt = require('./lib/client-auth-ext');
var config = require('./config.json');


var client = new Halley.Client('https://ws.gitter.im/bayeux');
client.addExtension(new ClientAuthExt({
  token: config.token
}));

var rooms = {
  'gitterHQ/api': '5790a3a2c2f0db084a24004d',
};


var roomId = rooms['gitterhq/developers'];

// See https://developer.gitter.im/docs/faye-endpoint for more subscribtion endpoints
var subscriptionEndpoint = '/api/v1/rooms/' + roomId;
console.log('subscriptionUrl', subscriptionEndpoint);
var subscription = client.subscribe(subscriptionEndpoint, function(message) {
  console.log('Incoming message', message);
});

subscription
  .then(function() {
    console.log('Subscription successful');
    var socketId = client.getClientId();
    var on = 1; // 1 for on or 0 for off
    // POST `/v1/eyeballs`
    // `{ socketId: socketId, on: on }`
  })
  .catch(function(err) {
    console.log('Subscription failed: ', err);
  });