Join na Sala
Closed this issue · 1 comments
Ola, notei que no livro você não faz menção do:
socket.emit('join',sala);
no lado cliente (a versão que tenho do livro não sei se é a mais atual, mas foi a do ano passado), vi que você já corrigiu esse erro em seu repositório esse ano, mas essa alteração será refletida no livro?
outra pergunta é: por que somente quando o usuário manda a primeira mensagem no bate papo que é atualizado o link para ele entrar na sala, ao invés atualizar quando ele clicasse em conversar? segundo o trecho de código a seguir retirado do seu repositório:
arquivo: chat/index.ejs
var enviar = function() {
var msg = document.getElementById('mensagem');
socket.emit('send-server', msg.value);
msg.value = '';
};
arquivo: sockets/chat.js
client.on('send-server', function (msg) {
var sala = session.sala
, data = {email: usuario.email, sala: sala};
msg = "<b>"+usuario.nome+":</b> "+msg+"<br>";
redis.lpush(sala, msg);
client.broadcast.emit('new-message', data);
sockets.in(sala).emit('send-client', msg);
});
arquivo: contatos/notify_script.ejs
socket.on('new-message', function(data) {
var opts = {el: 'notify_' + data.email
, msg: 'Mensagem'
, classes: 'label label-important'};
notify(opts);
var chat = document.getElementById('chat_' + data.email);
chat.href += '?sala=' + data.sala;
});
Desde já agradeço pela atenção 👍
Olá, obrigado pelo report, vou analisar se no livro esta faltando o que você passou pois acredito que já tinha corrigido isso, mas de qualquer forma darei uma olhada sim e se estiver faltando vou corrigir isso.
Sobre a outra pergunta, o motivo de atualizar o link do outro usuário, após o usuário mandar uma mensagem e não quando ele entra na sala, é porque isso previne que um usuário entre (atualiza o link) e saia (link atualizado, porém sem utilidade) da sala sem ao menos mandar uma mensagem no chat.