stream-saga/server.js
Rodrigo Pedroso fb4fa3cecb Trump stream
2019-06-25 11:07:16 -04:00

71 lines
1.7 KiB
JavaScript

'use strict'
const express = require('express')
const app = express()
const http = require('http').createServer(app)
const io = require('socket.io')(http)
const cors = require('cors')
const port = 3030
const env = process.env.NODE_ENV || 'dev'
const bodyparser = require('body-parser')
const path = require('path')
const apiRoutes = require('./server/api.js')
const config = require('./config/config.json')
var Twitter = require('twitter')
let streamClient = new Twitter({
consumer_key: config.consumer_key,
consumer_secret: config.consumer_secret,
access_token_key: config.access_token_key,
access_token_secret: config.access_token_secret
})
// Bodyparser
app.use(bodyparser.urlencoded({ extended: true }))
app.use(bodyparser.json())
// Cors
app.use(cors())
// Routing
app.use('/api', apiRoutes)
// Socket
var hillary = io.of('hillary').on('connection', (socket) => {
console.log('User connected to Hillary')
let stream1 = streamClient.stream('statuses/filter', {track: 'Hillary%20Clinton'})
stream1.on('data', function(tweet) {
hillary.emit('tweet', tweet)
})
stream1.on('error', function(error) {
console.log(error)
})
socket.on('disconnect', () => {
stream1.destroy()
console.log('User disconnected')
})
})
var trump= io.of('trump').on('connection', (socket) => {
console.log('User connected to Trump')
let stream1 = streamClient.stream('statuses/filter', {track: 'Donald%20Trump'})
stream1.on('data', function(tweet) {
trump.emit('tweet', tweet)
})
stream1.on('error', function(error) {
console.log(error)
})
socket.on('disconnect', () => {
stream1.destroy()
console.log('User disconnected')
})
})
http.listen(port, () => console.log(`Server listening on port ${port}`))