Chat com salas no nodejs ?
Pessoal, estou estudando o Nodejs e estou fazendo um chat, porem, estou com problemas para separar os usuários por salas.
Alguem ai manja de Node e sabe se ele tem alguma função pronta para separa os usuários por sala ou devo controlar as salas por programação ?
Tentei usando o comando socket.join(sala);, porem, ainda mistura as mensagens das salas.
Meu código completo esta assim:
var express = require('express');
var app = express();
var bodyParser = require("body-parser");
var http = require('http').Server(app);
var io = require('socket.io')(http);
var nome = "";
var sala = "";
app.use(bodyParser.urlencoded({ extended: false }));
// pagina inicial/login
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
// ao carregar chat
app.post('/chat', function(req, res){
res.sendFile(__dirname + '/chat.html'); // html do chat
// dados do post
nome = req.body.nome;
sala = req.body.sala;
});
// quando alguem conecta, entra aqui!
io.on('connection', function(socket){
// imprime dados do post
console.log('um usuario conectou: '+nome+" - sala: "+sala);
// adicio o usuario na sala
socket.join(sala);
// se desconectar
socket.on('disconnect', function(){
console.log('usuario desconectou');
});
// quando alguem envia uma msg
socket.on('setMessage', function(msg){
//envia a msg para todos
io.emit('sendMessages', msg);
});
});
http.listen(3000, function(){
console.log('servidor rodando em localhost:3000');
});
Vlww!
Discussão (0)
Carregando comentários...