Socket.IO inner workings