¿Cuál es un ejemplo del ejemplo Socket.io más simple posible?

Por lo tanto, he estado tratando de entender Socket.io últimamente, pero no soy un progtwigdor supergreat, y casi todos los ejemplos que puedo encontrar en la web (créanme que he buscado durante horas y horas), tienen elementos adicionales que complican las cosas. Muchos de los ejemplos hacen un montón de cosas que me confunden, o me conectan a una base de datos extraña, o usan coffeescript o toneladas de bibliotecas JS que complican las cosas.

Me encantaría ver un ejemplo básico y funcional en el que el servidor simplemente envíe un mensaje al cliente cada 10 segundos, diciendo qué hora es y el cliente escribe esos datos en la página o lanza una alerta, algo muy simple. Entonces puedo resolver las cosas a partir de ahí, agregar cosas que necesito como conexiones db, etc. Y sí, he comprobado los ejemplos en el sitio socket.io y no funcionan para mí, y no entiendo lo que hacen .

Editar: creo que es mejor para cualquiera consultar el excelente ejemplo de chat en la página de inicio de Socket.IO. La API se ha simplificado bastante desde que proporcioné esta respuesta. Dicho esto, aquí está la respuesta original actualizada pequeño-pequeño para la API más nueva.

Solo porque me siento bien hoy:

index.html

       

    app.js

     var http = require('http'), fs = require('fs'), // NEVER use a Sync function except at start-up! index = fs.readFileSync(__dirname + '/index.html'); // Send index.html to all requests var app = http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.end(index); }); // Socket.io server listens to our app var io = require('socket.io').listen(app); // Send current time to all connected clients function sendTime() { io.emit('time', { time: new Date().toJSON() }); } // Send current time every 10 secs setInterval(sendTime, 10000); // Emit welcome message on connection io.on('connection', function(socket) { // Use socket to communicate with this particular client only, sending it it's own id socket.emit('welcome', { message: 'Welcome!', id: socket.id }); socket.on('i am client', console.log); }); app.listen(3000); 

    Aquí está mi presentación!

    si coloca este código en un archivo llamado hello.js y lo ejecuta usando el nodo hello.js, debe imprimir el mensaje hola, se lo envió a través de 2 sockets.

    El código muestra cómo manejar las variables para un mensaje de saludo rebotado del cliente al servidor a través de la sección de código etiquetada // Mirror.

    Los nombres de las variables se declaran localmente en lugar de todos en la parte superior porque solo se usan en cada una de las secciones entre los comentarios. Cada uno de estos podría estar en un archivo separado y ejecutarse como su propio nodo.

     // Server var io1 = require('socket.io').listen(8321); io1.on('connection', function(socket1) { socket1.on('bar', function(msg1) { console.log(msg1); }); }); // Mirror var ioIn = require('socket.io').listen(8123); var ioOut = require('socket.io-client'); var socketOut = ioOut.connect('http://localhost:8321'); ioIn.on('connection', function(socketIn) { socketIn.on('foo', function(msg) { socketOut.emit('bar', msg); }); }); // Client var io2 = require('socket.io-client'); var socket2 = io2.connect('http://localhost:8123'); var msg2 = "hello"; socket2.emit('foo', msg2); 

    Tal vez esto también te pueda ayudar. Estaba teniendo problemas para entender cómo funcionaba socket.io, así que traté de dar un ejemplo tanto como pude.

    Adapte 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 comandos, use npm para instalar las dependencias que necesitamos para este ejemplo

     $ npm install --save express socket.io 

    Esto puede tardar unos minutos, dependiendo de la velocidad de su conexión de red / CPU / etc. Para verificar que todo salió según lo planeado, puede volver a mirar el archivo package.json .

     $ cat package.json { "dependencies": { "express": "~4.9.8", "socket.io": "~1.1.0" } } 

    Cree un archivo llamado server.js Esto obviamente 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); 

    Crea el último archivo llamado index.html y coloca el siguiente código en él.

        

    Ahora puede probar este ejemplo muy simple y ver alguna salida similar a la siguiente:

     $ node server.js listening on *:3001 0.9575486415997148 0.7801907607354224 0.665313188219443 0.8101786421611905 0.890920243691653 

    Si abre un navegador web y lo apunta al nombre de host en el que está ejecutando el proceso de nodo, verá aparecer los mismos números en su navegador, junto con cualquier otro navegador conectado que mire esa misma página.

    Me doy cuenta de que esta publicación ya tiene varios años, pero a veces los novatos certificados, como yo, necesitamos un ejemplo de trabajo que esté totalmente despojado de su forma más simple.

    cada ejemplo simple de socket.io podría encontrar involucrado http.createServer (). pero, ¿y si quieres incluir un poco de magic socket.io en una página web existente? aquí está el ejemplo más fácil y más pequeño que pude encontrar.

    esto simplemente devuelve una cadena pasada desde la consola UPPERCASED.

    app.js

     var http = require('http'); var app = http.createServer(function(req, res) { console.log('createServer'); }); app.listen(3000); var io = require('socket.io').listen(app); io.on('connection', function(socket) { io.emit('Server 2 Client Message', 'Welcome!' ); socket.on('Client 2 Server Message', function(message) { console.log(message); io.emit('Server 2 Client Message', message.toUpperCase() ); //upcase it }); }); 

    index.html:

            
    Worlds smallest Socket.io example to uppercase strings

    return UPPERCASED in the console
    socket.emit('Client 2 Server Message', 'try cut/paste this command in your console!');

    correr:

     npm init; // accept defaults npm install socket.io http --save ; node app.js & 

    use algo como esta prueba de puerto para asegurarse de que su puerto esté abierto.

    Ahora vaya a http: //localhost/index.html y use la consola de su navegador para enviar mensajes de regreso al servidor.

    en el mejor de los casos, adivine, al usar http.createServer, cambia las siguientes dos líneas para usted:

      var socket = io(); 

    Espero que este ejemplo muy simple ahorre a mis amigos novatos algunos problemas. y tenga en cuenta que me mantuve alejado de usar “palabras reservadas” buscando nombres de variables definidos por el usuario para mis definiciones de socket.