Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const http = require('http');
- const express = require('express');
- const socketio = require('socket.io');
- const readline = require('readline');
- const game = require('./game'); // this imports the RpsGame class from the rps-game.js file
- const app = express();
- const clientPath = `${__dirname}/../client`;
- console.log(`Serving static from ${clientPath}`);
- app.use(express.static(clientPath));
- const server = http.createServer(app);
- const io = socketio(server);
- var roomno = 1;
- players = [];
- io.on('connection', (sock) => {
- sock.on('disconnect', function(data) {
- sock.leave(players.roomNumber);
- players.splice(players.indexOf(sock.username), 1);
- connections.splice(connections.indexOf(sock), 1);
- console.log('Disconnected: %s sockets connected', players.length);
- updateUsernames();
- checkGameBtn();
- });
- // new user
- sock.on('new user', function(data) {
- sock.username = data;
- //Increase roomno when 2 clients are present in a room.
- if(io.nsps['/'].adapter.rooms["room"+roomno] && io.nsps['/'].adapter.rooms["room"+roomno].length >= 8) {
- roomno++;
- }
- sock.join("room"+roomno);
- sock.roomNumber = "room"+roomno;
- players.push( {playerId: sock.id, username: sock.username, roomNumber: sock.roomNumber, score: 6} );
- //var allConnectedClients = Object.keys(io.sockets.connected); // returns ids of all connected users
- //var clientsCount = io.engine.clientsCount ; // This will return the count of connected clients
- console.log('Connected: %s sockets connected', players.length);
- updateUsernames(players);
- checkGameBtn();
- //Send this event to everyone in the room.
- io.sockets.in("room"+roomno).emit('connectToRoom', "You are in room no. "+roomno);
- });
- function updateUsernames() {
- for (var i=0; i<players.length;i++) {
- var roomPlayers = players.filter(function(roomPlayer) {
- return roomPlayer.roomNumber === players[i].roomNumber;
- });
- io.sockets.in(players[i].roomNumber).emit('get users', roomPlayers);
- }
- }
- function checkGameBtn() {
- for (var i=0; i<players.length;i++) {
- var numOfPlayers = players.filter(function(numPlayer) {
- return numPlayer.roomNumber === players[i].roomNumber;
- });
- io.sockets.in(players[i].roomNumber).emit('startGameBtn', numOfPlayers);
- }
- }
- sock.on('message', (text) => {
- io.emit('message', text);
- });
- });
- server.on('error', (err) => {
- console.error('Server error: ', err);
- });
- server.listen(3333, () => {
- console.log('RPS started on 3333');
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement