Это будет отлично работать !!
index.html
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
//socket.emit('my other event', { my: 'data' }); // Line A
});
socket.emit('my other event', { my: 'data' }); //Line B
</script>
server.js
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
Возможно, замена строки B строкой A делает свое дело. Не знаю, почему socket.io не проверил их примеры. Это так, потому что socket.emit () является независимым вызовом и wont почему-то не запускается из-заНовое событие сервера. Причина пока неизвестна, но я смог получить желаемый результат.