-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
92 lines (78 loc) · 2.49 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
88
89
90
91
92
var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var fs = require('fs');
app.listen(8123);
function handler (req, res) {
console.log(req.url);
var url = req.url;
if (req.url == '/')
url = '/index.html';
fs.readFile(__dirname + url,
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
var players = {};
io.on('connection', function (socket) {
var cur_id;
socket.on('new_user', function(data) {
for (key in players) {
socket.emit('new_user', {'player_name' : players[key]['player_name'], 'player_id' : key, 'status' : players[key]['status']});
}
players[data['player_id']] = {'player_name' : data['player_name'], 'status' : 'free', 'socket' : socket};
cur_id = data['player_id'];
data['status'] = 'free';
socket.broadcast.emit('new_user', data);
console.log(players);
});
socket.on('disconnect', function() {
delete players[cur_id];
//for (key in players) {
// players[key]['socket'].emit('delete', {'player_id' : cur_id});
// }
socket.broadcast.emit('delete', {'player_id' : cur_id});
console.log(players);
});
socket.on('wanna_play', function(data) {
var other_player_id = data['player_id'];
players[other_player_id]['socket'].emit('wanna_play', {'player_id' : cur_id});
});
socket.on('decline', function(data) {
players[data['player_id']]['socket'].emit('decline', {'player_id' : cur_id});
});
socket.on("yes", function(data) {
new_data = {'1':
{'player_id': cur_id,
'news': 'W'
},
'2':
{'player_id': data['player_id'],
'news': 'E'
}
}
players[data['player_id']]['socket'].emit('start_game', {'players': new_data});
socket.emit('start_game', {'players': new_data});
for (key in players) {
if (key != cur_id && key != data['player_id']) {
players[key]['socket'].emit('busy', {'player_id' : cur_id});
players[key]['socket'].emit('busy', {'player_id' : data['player_id']});
}
}
});
socket.on('move', function(data) {
players[data['player_id']]['socket'].emit('move', data);
});
socket.on('game_over', function(data) {
for (key in players) {
if (key != cur_id && key != data['player_id']) {
players[key]['socket'].emit('free', {'player_id' : cur_id});
players[key]['socket'].emit('free', {'player_id' : data['player_id']});
}
}
});
});