Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var sys = require('sys'),
- http = require('http'),
- url = require('url'),
- path = require('path'),
- fs = require('fs'),
- events = require('events');
- function load_static_file( uri, response ) {
- var filename = path.join( process.cwd(), uri );
- path.exists( filename, function( exists ) {
- if( !exists ) {
- response.setHeader('Content-Type', 'text/plain');
- response.statusCode = 404;
- response.write('404 Not Found\n');
- response.end();
- return;
- }
- fs.readFile( filename, 'binary', function( err, file ) {
- if( err ) {
- response.setHeader( 'Content-Type', 'text/plain' );
- response.statusCode = 500;
- response.write( err, + '\n' );
- response.end();
- return;
- }
- response.statusCode = 200;
- response.write( file, 'binary' );
- response.end();
- });
- });
- }
- var tweet_emitter = new events.EventEmitter();
- function get_tweets() {
- var request = http.request({
- method:'GET',
- port:80,
- path:'/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=sam3k_&count=2',
- hostname:'api.twitter.com'
- });
- request.addListener( 'response', function(response) {
- var body = '';
- response.addListener( 'data', function(data) {
- body += data;
- });
- response.addListener( 'end', function() {
- var tweets = JSON.parse(body);
- if( tweets.length > 0) {
- tweet_emitter.emit('tweets', tweets);
- }
- });
- });
- request.end();
- }
- setInterval( get_tweets, 5000 );
- http.createServer(function(request, response) {
- var uri = url.parse(request.url).pathname;
- if(uri === '/stream') {
- var listener = tweet_emitter.addListener('tweets', function(tweets) {
- response.statusCode = 200;
- response.write(JSON.stringify(tweets));
- response.end();
- clearTimeout(timeout);
- });
- var timeout = setTimeout(function(){
- response.setHeader('Content-Type', 'text/plain');
- response.write(JSON.stringify([]));
- response.end();
- tweet_emitter.removeListener(listener);
- },10000);
- } else {
- load_static_file(uri, response);
- }
- }).listen(8080);
- sys.puts('Server Running at http://localhost:8080/');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement