У меня была точная проблема пару дней назад, и похоже, что у socket.io были некоторые изменения в API.
У меня есть работающая демонстрационная программа для отправки и получения сообщения socket.io - загружена в https://github.com/parj/node-websocket-demo в качестве ссылки
Существенно два изменения
На стороне сервера - изменено socket.on
на socket.sockets.on
var socket = io.listen(server);
socket.sockets.on('connection', function(client)
на стороне клиента - URL и порт не требуются, так как они автоматически определяются.
var socket = io.connect();
ПРИМЕЧАНИЕ: вы также можете io.connect("http://<ip>:<port>")
на стороне клиента, однако, не требуетсябольше, поскольку это автоопределение
Вот точные изменения - https://github.com/parj/node-websocket-demo/commit/5ba52db9d1a5b7e8a3af5839adcd12768741dc97
Это было проверено с использованием Express 2.5.2 и Socket.io 0.8.7