I'm on the socket.io wiki looking into using rooms but join and leave are not working, i'm wondering if they may have changed up a few things but not had the chance to update the wiki?
socket.join("room-"+data.meid); socket.leave("room-"+meid);
cause im getting console errors:
Uncaught TypeError: Object #<SocketNamespace> has no method 'leave' Uncaught TypeError: Object #<SocketNamespace> has no method 'join'
It looks like you had the socket.join on the client side. Its a server side function.
Put this on the server:
io.sockets.on('connection', function (socket) { socket.on('subscribe', function(data) { socket.join(data.room); }) socket.on('unsubscribe', function(data) { socket.leave(data.room); }) }); setInterval(function(){ io.sockets.in('global').emit('roomChanged', { chicken: 'tasty' }); }, 1000);
And this on the client:
var socket = io.connect(); socket.emit("subscribe", { room: "global" }); socket.on("roomChanged", function(data) { console.log("roomChanged", data); });
You're probably not declaring 'socket' correctly either that of you haven't installed Socket-io correctly. Try the following...
var io = require("socket.io"); var socket = io.listen(80); socket.join('room'); socket.leave('room');
There's a useful executable example here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With