-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.js
70 lines (55 loc) · 1.74 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
67
68
69
70
// Importando configurações do servidor
var app = require('./config/server');
// Parametrizar a porta de escuta
var server = app.listen(3000, function(){
console.log('Servidor Online');
});
var io = require('socket.io').listen(server);
// Variavéis globais
app.set('io', io);
io.on('connection' , function(socket){
var _apelido = undefined;
console.log("Usuário Conectou!");
socket.on('disconnect', function(){
// Emite para todos usuários do websocket
socket.broadcast.emit('msgUserOut', {
apelido: _apelido,
msg : 'acabou de sair do chat!'
});
console.log("Usuário Desconectou!");
})
//Preenche dados locais
socket.on('fillData', function(data){
_apelido = data.apelido;
});
// Recebendo do Websocket
socket.on('sendMsg', function(data){
_apelido = data.apelido;
// Emite a função apenas para o Usuário atual da requisição
socket.emit('msgUserIn', {
apelido: data.apelido,
msg : data.msg
});
// Emite para todos usuários do websocket
socket.broadcast.emit('msgUserIn', {
apelido: data.apelido,
msg : data.msg
});
if(parseInt(data.insertedUser) == 0){
socket.emit('refreshUsers', {
apelido: data.apelido
});
socket.broadcast.emit('refreshUsers', {
apelido: data.apelido
});
}
})
socket.on('userTyping', function(data){
socket.broadcast.emit('userTyping', {
apelido: data.apelido
});
})
socket.on('userNotTyping', function(data){
socket.broadcast.emit('userNotTyping', {});
})
})