Quizás esto también pueda ayudarte. Estaba teniendo problemas para entender cómo funcionaba socket.io, así que traté de resumir un ejemplo tanto como pude.
Adapté este ejemplo del ejemplo publicado aquí: http://socket.io/get-started/chat/
Primero, comience en un directorio vacío y cree un archivo muy simple llamado package.json Coloque lo siguiente en él.
{
"dependencies": {}
}
A continuación, en la línea de comando, use npm para instalar las dependencias que necesitamos para este ejemplo
$ npm install --save express socket.io
Esto puede demorar unos minutos dependiendo de la velocidad de su conexión de red / CPU / etc. Para verificar que todo salió según lo planeado, puede mirar el archivo package.json nuevamente.
$ cat package.json
{
"dependencies": {
"express": "~4.9.8",
"socket.io": "~1.1.0"
}
}
Cree un archivo llamado server.js . Obviamente, este será nuestro servidor ejecutado por nodo. Coloque el siguiente código en él:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
//send the index.html file for all requests
res.sendFile(__dirname + '/index.html');
});
http.listen(3001, function(){
console.log('listening on *:3001');
});
//for testing, we're just going to send data to the client every second
setInterval( function() {
/*
our message we want to send to the client: in this case it's just a random
number that we generate on the server
*/
var msg = Math.random();
io.emit('message', msg);
console.log (msg);
}, 1000);
Cree el último archivo llamado index.html y coloque el siguiente código en él.
<html>
<head></head>
<body>
<div id="message"></div>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
socket.on('message', function(msg){
console.log(msg);
document.getElementById("message").innerHTML = msg;
});
</script>
</body>
</html>
Ahora puede probar este ejemplo muy simple y ver un resultado similar al siguiente:
$ node server.js
listening on *:3001
0.9575486415997148
0.7801907607354224
0.665313188219443
0.8101786421611905
0.890920243691653
Si abre un navegador web y lo señala al nombre de host en el que está ejecutando el proceso de nodo, debería ver aparecer los mismos números en su navegador, junto con cualquier otro navegador conectado que vea esa misma página.