Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Access the Twitter Streaming API with ease (Node.js).
var util = require('util'),
http = require('http'),
events = require('events');
var Twitter = function(opts) {
this.username = opts.username;
this.password = opts.password;
this.track = opts.track;
this.data = '';
};
Twitter.prototype = new events.EventEmitter;
Twitter.prototype.getTweets = function() {
var opts = {
host: 'stream.twitter.com',
port: 80,
path: '/1/statuses/filter.json?track=' + this.track,
method: 'POST',
headers: {
'Connection': 'keep-alive',
'Accept': '*/*',
'User-Agent': 'Example Twitter Streaming Client',
'Authorization': 'Basic ' + new Buffer(this.username + ':' + this.password).toString('base64'),
},
},
self = this;
this.connection = http.request(opts, function(response) {
response.setEncoding('utf8');
response.on('data', function(chunk) {
self.data += chunk.toString('utf8');
var index, json;
while((index = self.data.indexOf('\r\n')) > -1) {
json = self.data.slice(0, index);
self.data = self.data.slice(index + 2);
if(json.length > 0) {
try {
self.emit('tweet', JSON.parse(json));
} catch(e) {
self.emit('error', e);
}
}
}
});
});
this.connection.write('?track=' + this.track);
this.connection.end();
};
module.exports = Twitter;
@mortocks

This comment has been minimized.

Show comment Hide comment
@mortocks

mortocks Aug 14, 2013

Any chance of an example for us ignorant people just starting out with Node?

Any chance of an example for us ignorant people just starting out with Node?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment