· 7 years ago · Jun 19, 2018, 03:02 PM
1var oauth = require('oauth-client'),
2 io = require('../'),
3 http = require('http'),
4 sys = require('sys'),
5 url = require('url'),
6 fs = require('fs');
7
8// å„変数ã®ä¸ã«
9// consumer_key
10// consumer_secret
11// oauth_token(access_token)
12// oauth_token_secret(access_token_secret)
13// を代入
14var consumerKey = '**********',
15 consumerSecret = '**********',
16 oauthToken = '**********',
17 oauthTokenSecret = '**********';
18
19var consumer = oauth.createConsumer(consumerKey, consumerSecret);
20 token = oauth.createToken(oauthToken, oauthTokenSecret);
21 signer = oauth.createHmac(consumer, token);
22
23var responseFile = function(response, path) {
24 var extension = /\.\w+/.test(path) ? path.match(/\.(\w+)/)[1] : 'html';
25 path = /\/?\w/.test(path) ? path : path + 'index.html';
26 var content_type = (extension === 'html' ? 'text/html':
27 extension === 'css' ? 'text/css':
28 extension === 'js' ? 'text/javascript':
29 'text/plain');
30 fs.readFile(__dirname + path, function(err, data) {
31 response.writeHead(200, { 'Content-Type': content_type });
32 response.write(data, 'utf8');
33 response.end();
34 });
35}
36
37var response404 = function(response) {
38 response.writeHead(404);
39 response.write('404 Not Found');
40 response.end();
41}
42
43var dispatcher = function(response, path, exists) {
44 var have = 0;
45 exists.forEach(function(filename) {
46 if (path === filename) {
47 have = 1;
48 responseFile(response, path);
49 }
50 });
51 if (!have) response404(response);
52}
53
54var server = http.createServer(function(request, response) {
55 var path = url.parse(request.url).pathname;
56 dispatcher(response, path, ['/', '/index.html', '/style.css', '/index.js']);
57});
58server.listen(8080);
59
60var request = oauth.createClient(443, 'userstream.twitter.com', true)
61 .request('GET', '/2/user.json', null, null, signer);
62
63var socket = io.listen(server);
64var buf = '';
65socket.on('connection', function(client) {
66 console.log(client.sessionId + ' is connected.');
67 request.addListener('response', function(response) {
68 response.addListener('data', function(chunk) {
69 buf += chunk;
70 if (!/\n$/.test(chunk.toString())) return;
71 var chunks = buf.split(/\r?\n/);
72 while (buf = chunks.shift()) {
73 client.send(buf);
74 client.broadcast(buf);
75 }
76 });
77 });
78 request.end();
79});
80socket.on('disconnect', function(client) {
81 console.log(client.sessionId + ' is disconnected.');
82});