forked from totaljs/examples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdefault.js
More file actions
45 lines (33 loc) · 815 Bytes
/
default.js
File metadata and controls
45 lines (33 loc) · 815 Bytes
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
exports.install = function() {
F.route('/*', view_app);
F.websocket('/', socket_chat, ['json']);
};
function view_app() {
var self = this;
self.view('app');
}
function socket_chat() {
var self = this;
// refresh online users
var refresh = function() {
var users = [];
self.all(function(client) {
if (client.alias)
users.push(client.alias);
});
self.send({ type: 'users', message: users });
};
self.on('message', function(client, message) {
if (message.type === 'change') {
client.alias = message.message;
refresh();
return;
}
self.send({ user: client.alias, type: 'message', message: message.message, date: new Date() }, function(current) {
return (current.alias || '').length > 0;
});
});
self.on('close', function(client) {
refresh();
});
}