It would be great if the client was compatible with AMD loaders, i.e. it should call define if it's available. That would allow us to write such code on the client side:
define(['socket.io'], function(io) {
// now io can be used just like if Socket.IO was loaded using a <script> tag
});
This shouldn't be a problem as the client is already a valid CommonJS module (http://requirejs.org/docs/commonjs.html).