const express = require("express"); const socketIO = require("socket.io"); const service = require("./service.js"); const state = require("./state.js"); const PORT = 3001; const app = express(); const server = app.listen(PORT, () => console.log(`Example app listening on port ${PORT}!`)); const io = socketIO(server); app.get('/', (req, res) => res.send('
' + JSON.stringify(state) + '
')); io.on('connection', socket => { const socketId = socket.id; console.log('a user connected', socketId); const lobby = service.joinLobby(socketId); socket.join(lobby.name); socket.emit('welcome', {lobby: lobby.name}); socket.on('disconnect', (reason) => { console.log('Disconnected:', socketId); service.leaveLobby(socketId); }); socket.on('join_lobby', (lobbyId, callback) => { console.log(`${socketId} wants to join '${lobbyId}'.`); // Leave current lobby first service.leaveLobby(socketId); const lobby = service.joinLobby(socketId, lobbyId); socket.join(lobby.name); callback(null, { status: 'ok', lobby: lobby.name }); }); });