Advertisement
jordman

index.js

Jun 18th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var express = require('express');
  2. var app = express();
  3. var server = require('http').Server(app);
  4. var io = require('socket.io')(server);
  5.  
  6. var rooms = 0;
  7.  
  8. app.use(express.static('.'));
  9.  
  10. app.get('/', function (req, res) {
  11.     res.sendFile(__dirname + '/game.html');
  12. });
  13.  
  14. io.on('connection', function (socket) {
  15.     /**
  16.      * Create a new game room and notify the creator of game.
  17.      */
  18.     socket.on('createGame', function (data) {
  19.         socket.join('room-' + ++rooms);
  20.         socket.emit('newGame', {
  21.             name: data.name,
  22.             room: 'room-' + rooms
  23.         });
  24.     });
  25.  
  26.     /**
  27.      * Connect the Player 2 to the room he requested. Show error if room full.
  28.      */
  29.     socket.on('joinGame', function (data) {
  30.         var room = io.nsps['/'].adapter.rooms[data.room];
  31.         if (room && room.length == 1) {
  32.             socket.join(data.room);
  33.             console.log("pass");
  34.             socket.to(data.room).emit("joined", {
  35.                 name: data.name,
  36.                 id: room
  37.             });
  38.         } else {
  39.             socket.to(room).emit('err', {
  40.                 message: 'Sorry, The room is full!'
  41.             });
  42.         }
  43.     });
  44.  
  45.     /**
  46.      * Handle the turn played by either player and notify the other.
  47.      */
  48.     socket.on('played', function (data) {
  49.         socket.broadcast.to(data.room).emit('turnPlayed', {
  50.             tile: data.tile,
  51.             index: data.index
  52.         });
  53.     });
  54.  
  55.     /**
  56.      * Notify the players about the victor.
  57.      */
  58.     socket.on('gameEnded', function (data) {
  59.         socket.broadcast.to(data.room).emit('gameEnd', data);
  60.     });
  61. });
  62.  
  63. server.on('listening', function () {
  64.     console.log('ok, server is running');
  65. });
  66.  
  67. server.listen(3000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement