socket.io errors when client connects

I have socket.io running successfully on my node.js installation.

info  - socket.io started

The console shows it running ok, but as soon as the client (browser) connects:

socket = io.connect('<my host>:8000');

The console is kicking out an error:

crypto.js:123
  return new Hash(hash);
         ^
TypeError: undefined is not a function
    at Object.createHash (crypto.js:123:10)
    at WebSocket.onSocketConnect (/node_modules/socket.io/lib/transports/websocket/hybi-16.js:120:23)
    at WebSocket.handleRequest (/node_modules/socket.io/lib/transport.js:71:10)
    at WebSocket.Transport (/node_modules/socket.io/lib/transport.js:31:8)
    at new WebSocket (/node_modules/socket.io/lib/transports/websocket/hybi-16.js:59:13)
    at new WebSocket (/node_modules/socket.io/lib/transports/websocket.js:31:17)
    at Manager.handleClient (/node_modules/socket.io/lib/manager.js:661:19)
    at Manager.handleUpgrade (/node_modules/socket.io/lib/manager.js:618:8)
    at Server.<anonymous> (/node_modules/socket.io/lib/manager.js:123:10)
    at Server.emit (events.js:88:20)

can anyone understand what this might mean?

My code has been working fine on my local machine, its only when moving it to my production server does this error happen.

It turns out it's because Node was installed with the option --without-ssl. This means it doesnt install any of the crypto stuff, which was needed by socket.it. I installed openssl, reinstalled Node, and this fixed it :)