Newer
Older
BlackoutServerNode / index.js
const WebSocket = require('ws');
const Player = require('./player');
const Room = require('./room');

var lobby = new Room("Lobby");
var playersBySocket = {};

const ws = new WebSocket.Server({port: 9997});

ws.on('listening', function() {
	console.log('Listening!');
});

ws.on('connection', function(conn)
	{
		console.log('Connection!');
		
		conn.on('message', function(message)
			{
				if (playersBySocket[conn] !== undefined)
				{
					var p = playersBySocket[conn];
					if (p.room != null)
					{
						p.room.playerMessage(p, message);
					}
				}
				console.log('Message: ' + message);
			}
		);
		conn.on('close', function(code, reason)
			{
				console.log('Socket closed: ' . reason);
				if (playersBySocket[conn] !== undefined)
				{
					const p = playersBySocket[conn];
					delete playersBySocket[conn];

					p.room.removePlayer(p);
				}
			}
		);

		var p = new Player(conn);
		playersBySocket[conn] = p;

		p.sendMessage("connected", {player_id:p.id});

		lobby.addPlayer(p);
	}
);

ws.on('error', function(err)
	{
		console.log('Error: ' + err);
	}
);