Reputation: 1775
I'm trying to make a chat app work via rooms.
On the server side I have something like:
io.sockets.on('connection', function (socket) {
socket.emit('connection', { userId: socket.id});
socket.room = 'General';
console.log(socket.room);
socket.on('sendMessage', function (data) {
console.log(data.room);
// socket.broadcast.emit('receiveMessage', { data: data });
socket.broadcast.to(data.room).emit('receiveMessage', { data: data });
});
socket.on('disconnect', function () {
console.log("DISCONNECT");
socket.emit('disconnect');
});
});
Client-side:
var room = 'General';
var message = 'test';
socket.emit('sendMessage', { room : room, message: message });
socket.on('receiveMessage', function (data) {
console.log(data);
});
When using socket.broadcast.emit, I see the console logs on the client side for all connected users. When using socket.broadcast.to(data.room), I don't see the console logs.
Room is set to 'General' for all clients upon connection.
Ideas?
Ps.: Made a mistake thinking I had to do socket.room = 'room'
. It's actually socket.join('room');
Upvotes: 1
Views: 2298