"transport" of Socket.IO plays major role (but, it's not smooth/plug 'n play). Benchmark missing note about chosen transport.
socket.io falls back to long polling, so you have to be careful when trying to produce benchmarks based only on websockets. I didn't see this in the server code so I assume the default transports were used.
io.configure(ENV, function(){ io.set('transports', ['websocket']); });
more here: https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Soc...
Also, Firefox version would be nice to know.