Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const path = require('path');
- const express = require('express');
- const webpack = require('webpack');
- const webpackMiddleware = require('webpack-dev-middleware');
- const webpackHotMiddleware = require('webpack-hot-middleware');
- const config = require('../webpack.config.js');
- const shortid = require('shortid');
- //actions
- const setSlotPreview = require('./actions/').setSlotPreview
- const clearSlotPreview = require('./actions/').clearSlotPreview
- const playerMoved = require('./actions/').playerMoved
- const toggleActivePlayer = require('./actions/').toggleActivePlayer
- const isDeveloping = process.env.NODE_ENV !== 'prod';
- const port = isDeveloping ? 3000 : process.env.PORT;
- const app = express();
- const http = require('http').Server(app);
- const io = require('socket.io').listen(http);
- app.use(express.static(__dirname + '../dist'));
- if (isDeveloping) {
- const compiler = webpack(config('dev'));
- const middleware = webpackMiddleware(compiler, {
- publicPath: config('dev').output.publicPath,
- contentBase: 'src',
- stats: {
- colors: true,
- hash: false,
- timings: true,
- chunks: false,
- chunkModules: false,
- modules: false
- }
- });
- app.use(middleware);
- app.use(webpackHotMiddleware(compiler));
- app.get('/', function response(req, res, next) {
- res.write(middleware.fileSystem.readFileSync(path.join(__dirname, '../dist/index.html')));
- res.end()
- });
- } else {
- app.use(express.static(__dirname + '../dist'));
- app.get('/', function response(req, res) {
- res.sendFile(path.join(__dirname, '../dist/index.html'));
- });
- }
- app.get('/:uuid', function(req, res) {
- console.log('uuid')
- app.use(express.static(__dirname + '../dist'));
- res.sendFile(path.join(__dirname, '../dist/index.html'));
- })
- app.get('/api/create', function(req, res) {
- const namespaceID = shortid.generate()
- const namespace = io.of(`${namespaceID}`)
- handleNSPConnections(namespace)
- res.send(JSON.stringify({response: namespaceID}))
- })
- const handleNSPConnections = (namespace) => {
- console.log('handle namespace connections')
- }
- io.on('connection', function (socket) {
- socket.on("action", function (action) {
- switch (action.type) {
- case "SET_SLOT_PREVIEW":
- return socket.broadcast.emit('action', setSlotPreview(action.colIndex))
- case "CLEAR_SLOT_PREVIEW":
- return socket.broadcast.emit('action', clearSlotPreview(action.colIndex))
- case "PLAYER_MOVED":
- return socket.broadcast.emit('action', playerMoved(action.colIndex))
- }
- })
- });
- http.listen(port, '0.0.0.0', function onStart(err) {
- if (err) {
- console.log(err);
- }
- console.info('==> 🌎 Listening on port %s. Open up http://0.0.0.0:%s/ in your browser.', port, port);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement