-
Notifications
You must be signed in to change notification settings - Fork 1
/
server.js
executable file
·87 lines (67 loc) · 1.73 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
var express = require('express')
, app = express(app)
, server = require('http').createServer(app)
, tools = require('./tools');
app.use(express.static(__dirname));
var clients = {};
var rooms = {};
var Eureca = require('eureca.io');
var eurecaServer = new Eureca.Server({allow:['setId', 'spawnPlayer', 'killPlayer', 'updateState']});
eurecaServer.attach(server);
eurecaServer.onConnect(function (conn) {
//console.log('New Client id=%s ', conn.id, conn.remoteAddress);
var remote = eurecaServer.getClient(conn.id);
clients[conn.id] = new tools.client(conn.id, remote);
remote.setId(conn.id);
});
eurecaServer.onDisconnect(function (conn) {
//console.log('Client disconnected ', conn.id);
var removeId = clients[conn.id].id;
delete clients[conn.id];
killPlayer(conn.id);
});
var createRoom = function (id, name) {
rooms[name] = new tools.room(id, name);
}
var deleteRoom = function (name) {
var removeId = rooms[name].id;
delete rooms[name];
for (var c in clients)
{
var remote = clients[c].remote;
//update rooms list
//remote.updateRoomsList();
}
}
var killPlayer = function(id){
for (var c in clients)
{
var remote = clients[c].remote;
remote.killPlayer(id);
}
}
eurecaServer.exports.killPlayer = function(id)
{
killPlayer(id);
}
eurecaServer.exports.handshake = function()
{
for (var c in clients)
{
var remote = clients[c].remote;
for (var cc in clients)
{
remote.spawnPlayer(clients[cc].id);
}
}
}
eurecaServer.exports.handleKeys = function (keys) {
var updatedClient = clients[this.connection.id];
for (var c in clients)
{
var remote = clients[c].remote;
remote.updateState(updatedClient.id, keys);
//clients[c].lastState = keys;
}
}
server.listen(8000);