Using Socket.io, how do I detect when a new channel/room has been created?

From the server, I want to be able to detect when a client creates new a room or channel. The catch is that the rooms and channels are arbitrary so i don't know what they will be until the user joins/subscribes. Something like this:

Server:

io.on('created', function (room) {
    console.log(room); //prints "party-channel-123"
});

Client:

socket.on('party-channel-123', function (data) {
    console.log(data)
})

I also can't have any special client requirements such as sending a message when the channel is subscribed as such:

socket.on('party-channel-123', function (data) {
    socket.emit('subscribed', 'party-channel-123');
})

Server:

io.sockets.on('connection', function(socket) {
    socket.on('createRoom', function(roomName) {
        socket.join(roomName);
    });
});

Client

var socket = io.connect();
socket.emit('createRoom', 'roomName');

the io object has references to all currently created rooms and can be used as such:

io.sockets.in(room).emit('event', data);

Hope this helps.

PS. I know its emitting the 'createRoom' that you probably don't want but this is how socket.io is used, this is pretty much copy/paste out of the docs. There are tons of examples on the socket.io website and others.