-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
73 lines (56 loc) · 1.84 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//imports
var app = require('http').createServer(handler)
, twitter = require("ntwitter")
, fs = require('fs')
, io = require('socket.io').listen(app);
var num_tweets = 0;
var twit = new twitter({
consumer_key: 'xTRQGotkLQFG1JTFAOTRQ',
consumer_secret: 'LqDuZtfiWreExZzZp1t2RLVvNyr6OkbgDdtgmy10',
access_token_key: '9781412-Z0FYhGjkL3WTRTAXBUyZNAWWN5pMXJsnBZdUeGo40',
access_token_secret: 'vpfDtBHrtTAELXlxzOJS9KrZcFuGm0VGOLqkOZxOQ'
});
//socket operations
io.sockets.on('connection', function (socket) {
twit.stream('statuses/filter', {'track':'christmas'}, function(stream) {
stream.on('data', function (data) {
num_tweets++;
//throttle emits.
if(num_tweets % 10 == 0) {
socket.emit('tweet', {data: data.text});
console.log(data.text);
console.log(num_tweets);
console.log("------------------------------");
}
});
stream.on('error', function(data) {
console.log(data);
});
//stream.on('end',
});
socket.on('disconnect', function () {
console.log("Client Disconnected");
//need to figure out how to kill the twitter stream. .destroy doesn't seem to do it.
});
});
//handle regular URL requests
app.listen(8080);
function handler(req, res) {
serve_static_file(req, res);
}
function serve_static_file(req, res) {
var url = req.url;
if (url == '/') {
url = '/index.html';
}
fs.readFile(__dirname + '/frontend' + url,
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading static file: ' + err);
}
res.writeHead(200);
res.end(data);
}
);
}