node.js and socket.io: different connections for different "sessions"

I've got a node.js application that 'streams' tweets to users. At the moment, it just searches Twitter for a hard-coded string, but I'd like to allow users to configure this in the URL (eg. by visiting /?q=stackoverflow).

At the moment, my code looks a bit like this:

app.get('/', function (req, res) {

    // page rendering skipped

    io.sockets.on('connection', function (socket) { 
        twit.stream('user', {track: 'stackoverflow'}, function(stream) {
            stream.on('data', function (data) {
                socket.volatile.emit('tweet', data);
            }
        });
    });
});

The question is, how do I make it so that each user can see a different stream of tweets simultaneously? At the moment, it works fine in a single browser tab, but it falls over as soon as a second one is opened - and the error is fairly deep down inside socket.io. Am I misusing it?

I haven't fully got my head around socket.io yet, so that could be the issue.

Thanks in advance!

Every time a new request comes in, you are redefining the connection callback with io.sockets.on - you should move that block of code outside of app.get, after your initialization statement of the io object.