Looking for socket.io Answers? Try Ask4KnowledgeBase
Looking for socket.io Keywords? Try Ask4Keywords

socket.ioEmpezando con socket.io


Observaciones

Socket.IO es una biblioteca de JavaScript para aplicaciones web en realtime . Permite la comunicación bidireccional en tiempo real entre clientes web y servidores. Tiene dos partes: una biblioteca del lado del cliente que se ejecuta en el navegador y una biblioteca del lado del servidor para node.js Ambos componentes tienen una API casi idéntica. Al igual que node.js, está controlado por eventos.

Socket.IO utiliza principalmente el protocolo websocket con el sondeo como una opción alternativa, al tiempo que proporciona la misma interfaz. Aunque se puede usar como un simple envoltorio para webSocket , proporciona muchas más funciones, incluida la difusión a múltiples sockets, el almacenamiento de datos asociados con cada cliente y la E / S asíncrona.

Versiones

Versión Fecha de lanzamiento
1.4.8 2016-06-23
1.4.7 2016-06-23
1.4.6 2016-05-02
1.4.5 2016-01-26
1.4.4 2016-01-10
1.4.3 2016-01-08
1.4.2 2016-01-07
1.4.1 2016-01-07
1.4.0 2015-11-28
1.3.7 2015-09-21
1.3.6 2015-07-14
1.3.5 2015-03-03
1.3.4 2015-02-14
1.3.3 2015-02-03
1.3.2 2015-01-19
1.3.1 2015-01-19
1.3.0 2015-01-19
1.2.1 2014-11-21
1.2.0 2014-10-27
1.1.0 2014-09-04
1.0.6 2014-06-19
1.0.5 2014-06-16
1.0.4 2014-06-02
1.0.3 2014-05-31
1.0.2 2014-05-28
1.0.1 2014-05-28
1.0.0 2014-05-28

"¡Hola Mundo!" Con mensajes de socket.

Instalar módulos de nodo

npm install express
npm install socket.io
 

Servidor Node.js

const express = require('express'); 
const app = express();
const server = app.listen(3000,console.log("Socket.io Hello Wolrd server started!"));
const io = require('socket.io')(server);

io.on('connection', (socket) => {
    //console.log("Client connected!");
    socket.on('message-from-client-to-server', (msg) => {
        console.log(msg);
    })
    socket.emit('message-from-server-to-client', 'Hello World!');
});
 

Cliente navegador

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Hello World with Socket.io</title>
  </head>
  <body>
    <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
    <script>
      var socket = io("http://localhost:3000");
      socket.on("message-from-server-to-client", function(msg) {
          document.getElementById('message').innerHTML = msg;
      });
      socket.emit('message-from-client-to-server', 'Hello World!');
    </script>
    <p>Socker.io Hello World client started!</p>
    <p id="message"></p>
  </body>
</html>
 

En el ejemplo anterior, la ruta a la biblioteca socket.io se define como /socket.io/socket.io.js .

Aunque no escribimos ningún código para servir a la biblioteca socket.io, Socket.io lo hace automáticamente.

Instalación o configuración

En primer lugar, instale socket.io módulo en node.js aplicación.

npm install socket.io --save
 

Configuración básica de HTTP

El siguiente ejemplo conecta socket.io a un servidor HTTP de node.js simple que escucha en el puerto 3000.

var server = require('http').createServer();

var io = require('socket.io')(server);

io.on('connection', function(socket){

  console.log('user connected with socketId '+socket.id);

  socket.on('event', function(data){
      console.log('event fired');
  });

  socket.on('disconnect', function(){
      console.log('user disconnected');
  });

});

server.listen(3000);
 

Configuración con Express

La aplicación Express se puede pasar al servidor http que se adjuntará a socket.io .

var app = require('express')();                   //express app
var server = require('http').createServer(app);   //passed to http server
var io = require('socket.io')(server);            //http server passed to socket.io

io.on('connection', function(){

  console.log('user connected with socketId '+socket.id);

  socket.on('event', function(data){
      console.log('event fired');
  });

  socket.on('disconnect', function(){
      console.log('user disconnected');
  });

});

server.listen(3000);
 

Configuración del lado del cliente

Verifique el ejemplo anterior de Hello World para la implementación del lado del cliente.