-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchat.io.js
126 lines (85 loc) · 3.48 KB
/
chat.io.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
/**
*
* Created by Stephen Wille
* Date: 8/20/13
*/
"use strict";
module.exports = chat;
function chat(io) {
console.log('chat.io called');
var messageDoc = {when:new Date(), from:'', message:''};
io.sockets.on('connection', function(socket) {
// console.log(socket);
socket.on('clientMessage', function(content) {
console.log('client msg ', content);
if(!socket.username) {
socket.username = socket.id;
}
//io.of('/room', function(err, room) {
var broadcast = socket.broadcast;
var message = content;
//if(err) {
// console.log(err);
//}
// if(room === undefined) { room = 'home'; }
//if(room) {
// broadcast.to(room);
//}
messageDoc = {when:new Date(), from:socket.username, message:content};
socket.emit('serverMessage', messageDoc);
// todo log msg to db
broadcast.emit('serverMessage', messageDoc);
//});
});
socket.on('login', function(username) {
socket.username = username;
messageDoc = {when:new Date(), from:username, room:'', message:''};
messageDoc.message = 'currently logged in as ' + username;
socket.emit('serverMessage', messageDoc);
messageDoc.message = 'user ' + username + ' logged in';
socket.broadcast.emit('serverMessage', messageDoc);
});
socket.on('disconnect', function() {
io.use(function(socket, username, next) {
console.log('disoconnect ', socket, username, next);
if(!username) {
username = socket.id;
}
socket.broadcast.emit('serverMessage', 'user ' + username + ' disconnected');
});
});
socket.on('join', function(room) {
socket.get('room', function(err, oldRoom) {
if(err) {
throw err;
}
socket.set('room', room, function(err) {
if(err) {
throw err;
}
socket.join(room);
if(oldRoom) {
socket.leave(oldRoom);
}
socket.get('username', function(err, username) {
if(!username) {
username = socket.id;
}
});
socket.emit('servierMessage', 'you joined room ' + room);
socket.get('username', function(err, username) {
if(!username) {
username = socket.id;
}
socket.broadcast.to(room).emit('serverMessage', 'user ' + username + ' joined this room');
});
});
});
});
socket.emit('login');
}
)
;
/* END - .on('connection') */
}
/* End chat */