-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlobby.js
129 lines (105 loc) · 3.04 KB
/
lobby.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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
module.exports = function(io, username, db) {
console.log("welcome "+username);
User = require('./public/models/user');
Gameutils = require('./public/models/gameutils');
var onlineUsers = [];
/// SERVER SIDE ///
var client = io.of('/lobby');
Lobbychat = require('./public/models/lobbychat');
var socketCounter = 0;
client.on('connection', function(socket)
{
console.log("Counter conn: "+socketCounter);
setOnline();
socket.removeAllListeners();
// Getting messages from database
socket.on('getlobbymsgs', function(data){
Lobbychat.getLobbyChats(data.lobby, function(err, lobbychat){
if(err)
{ console.log("Socket error occured."); }
else
{
client.emit('outputlobbymsg', lobbychat);
} // Emit the messages
});
});
// Getting messages from database
socket.on('getonlines', function(data){
updateOnlineList();
});
// Getting messages from database
socket.on('getgames', function(data){
Gameutils.getOnlineGames({'gamefinish': false},function(err,gameutil){
if(err)
{
console.log("annaerror",err)
}
else {
client.emit('onlinegames', gameutil);
}
});
});
// Handle input events when there is a new message
socket.on('newlobbymessage', function(data){
let message = data.message;
var name = data.username;
// Adding the message to the database
Lobbychat.addLobbyMessage({lobbyname: name, lobbymessage: message}, function(err, msg){
if(err)
{
console.log(err);
res.send("An Error Occured");
}
else
{
client.emit('outputlobbymsg', [msg]);
}
});
});
function setOnline(){
console.log(username+" will be set online");
User.setOnline({username: username}, {isonline:true}, {}, function(err, msg){
if(err)
{
console.log(err);
res.send("An Error Occured");
}
else
{
updateOnlineList();
}
});
}
function setOffline(){
User.setOffline({username: username}, {isonline:false}, {},function(err, msg){
if(err)
{
console.log(err);
res.send("An Error Occured");
}
else
{
console.log("dondum de olmadi");
updateOnlineList();
}
});
}
function updateOnlineList(){
var where = { isonline: true };
User.getOnlines(where, function(err, onlinelist){
if(err)
{ console.log("Socket error occured."); }
else
{
console.log("online list:" + onlinelist);
client.emit('outputonlines', onlinelist);
}
});
}
socket.on('disconnect', function () {
console.log("disconnected!!");
setOffline();
});
});
/// SERVER SIDE END ////
}