-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
66 lines (47 loc) · 1.56 KB
/
app.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
var users = [];
var express = require('express');
var path = require('path');
var cons = require('consolidate');
var routes = require('./routes');
var app = express();
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.engine('html', cons.mustache);
app.set('view engine', 'html');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your-secret-here'));
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
var io = require('socket.io').listen(app.listen( app.get('port')));
io.sockets.on('connection', function (socket) {
socket.on('new', function (data ) {
var user = {};
user.username = data.username;
user.socket = socket.id;
users.push(user);
io.sockets.emit('login', { username: user.username });
io.sockets.emit('users', { users:users });
user = null;
});
socket.on('send', function (data) {
io.sockets.emit('message', data);
});
socket.on('disconnect', function () {
for(var i=0;i<users.length;i++){
if(users[i].socket == socket.id){
socket.broadcast.emit('logout',{ username:users[i].username });
users.splice(i,1);
socket.broadcast.emit('users',{ users:users });
break;
}
}
});
});