-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
99 lines (75 loc) · 2.08 KB
/
index.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
var express = require('express');
var app = require('express')();
var http = require('http').Server(app);
var IO = require('socket.io')(http);
app.use(express.static(__dirname + '/views'));
/*app.get('/',function (req,res){
res.sendFile(__dirname + '/views');
});*/
var users = {};
var numberOfUsers =0;
IO.on('connection',function(socket){
console.log('a user is connected');
if(socket.username)
{
socket.broadcast.emit('disconnected', socket.username);
delete users[socket.username];
numberOfUsers--;
}
socket.on('disconnect',function(){
console.log(socket.username + ' disconnected');
if(socket.username)
{
socket.broadcast.emit('disconnected', socket.username);
delete users[socket.username];
numberOfUsers--;
}
});
// checks new uer connected if alredy presnt or not
socket.on('new_user_connected',function(username,callback){
console.log('new_user_connected and his name is ' + username);
if(username in users )
{
console.log('user already present');
callback(false);
}
else{
console.log('he is really a new user');
numberOfUsers++;
socket.username = username;
users[socket.username] = socket; // saving my socket here for private messaging
socket.broadcast.emit('connected', username);
callback(Object.keys(users));
}
});
// recives the message from client
socket.on('chat message',function(message){
socket.broadcast.emit('chat message',socket.username,message);
});
socket.on('pvt msg',function(message,callback){
var user = message.trim();
var index = user.indexOf(' ');
console.log(index);
if(index != -1)
{
user = user.substr(0,index);
console.log(user);
message = message.substr(index+1);
console.log(message);
if(user in users)
{
(users[user]).emit('pvt msg',socket.username,message);
}
else
{
callback('error! please enter a valid user');
}
}
else{
callback('error! please enter some message');
}
});
});
http.listen(3000,function(){
console.log('running on port 3000');
});