Advertisement
Guest User

Untitled

a guest
Feb 1st, 2017
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const path = require('path');
  2. const express = require('express');
  3. const webpack = require('webpack');
  4. const webpackMiddleware = require('webpack-dev-middleware');
  5. const webpackHotMiddleware = require('webpack-hot-middleware');
  6. const config = require('../webpack.config.js');
  7. const shortid = require('shortid');
  8.  
  9. //actions
  10. const setSlotPreview = require('./actions/').setSlotPreview
  11. const clearSlotPreview = require('./actions/').clearSlotPreview
  12. const playerMoved = require('./actions/').playerMoved
  13. const toggleActivePlayer = require('./actions/').toggleActivePlayer
  14.  
  15. const isDeveloping = process.env.NODE_ENV !== 'prod';
  16. const port = isDeveloping ? 3000 : process.env.PORT;
  17. const app = express();
  18. const http = require('http').Server(app);
  19. const io = require('socket.io').listen(http);
  20. app.use(express.static(__dirname + '../dist'));
  21.  
  22. if (isDeveloping) {
  23.   const compiler = webpack(config('dev'));
  24.   const middleware = webpackMiddleware(compiler, {
  25.     publicPath: config('dev').output.publicPath,
  26.     contentBase: 'src',
  27.     stats: {
  28.       colors: true,
  29.       hash: false,
  30.       timings: true,
  31.       chunks: false,
  32.       chunkModules: false,
  33.       modules: false
  34.     }
  35.   });
  36.  
  37.   app.use(middleware);
  38.   app.use(webpackHotMiddleware(compiler));
  39.   app.get('/', function response(req, res, next) {
  40.     res.write(middleware.fileSystem.readFileSync(path.join(__dirname, '../dist/index.html')));
  41.     res.end()
  42.   });
  43. } else {
  44.   app.use(express.static(__dirname + '../dist'));
  45.   app.get('/', function response(req, res) {
  46.     res.sendFile(path.join(__dirname, '../dist/index.html'));
  47.   });
  48. }
  49.  
  50. app.get('/:uuid', function(req, res) {
  51.     console.log('uuid')
  52.     app.use(express.static(__dirname + '../dist'));
  53.     res.sendFile(path.join(__dirname, '../dist/index.html'));
  54. })
  55.  
  56. app.get('/api/create', function(req, res) {
  57.     const namespaceID = shortid.generate()
  58.     const namespace = io.of(`${namespaceID}`)
  59.     handleNSPConnections(namespace)
  60.    
  61.     res.send(JSON.stringify({response: namespaceID}))
  62. })
  63.  
  64. const handleNSPConnections = (namespace) => {
  65.     console.log('handle namespace connections')
  66. }
  67.  
  68. io.on('connection', function (socket) {
  69.     socket.on("action", function (action) {
  70.       switch (action.type) {
  71.         case "SET_SLOT_PREVIEW":
  72.             return socket.broadcast.emit('action', setSlotPreview(action.colIndex))
  73.         case "CLEAR_SLOT_PREVIEW":
  74.             return socket.broadcast.emit('action', clearSlotPreview(action.colIndex))
  75.         case "PLAYER_MOVED":
  76.             return socket.broadcast.emit('action', playerMoved(action.colIndex))
  77.       }
  78.     })
  79. });
  80.  
  81. http.listen(port, '0.0.0.0', function onStart(err) {
  82.   if (err) {
  83.     console.log(err);
  84.   }
  85.   console.info('==> 🌎 Listening on port %s. Open up http://0.0.0.0:%s/ in your browser.', port, port);
  86. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement