Socket.io

Librería Javascript para crear aplicaciones web en tiempo real

deivijt.com

EJEMPLO Y CASO DE USO

192.168.1.133:5000

¿COMO EMPEZAR CON SOCKET.IO?

$  npm install socket.io --save

<script src="/socket.io/socket.io.js"></script>

NodeJS

Cliente web

COMUNICACIÓN

CLIENTE - SERVIDOR

La comunicación en Socket.io se da a través de eventos

// Cliente                                //Servidor     
const socket = io.connect('/rooms')       io.on('connection', (socket) => {

socket.emit('pixel', payload)              socket.on('pixel', (payload) => {
socket.on('new pixel', draw)                socket.emit('new pixel', payload)
                                           })                                
                                         })

BROADCASTING

Enviar mensajes a todos los clientes excepto a quien emitió el evento.

// Cliente                               // Servidor

socket.emit('pixel', payload)            socket.on('pixel', (payload) => {
socket.on('new pixel', draw)               socket.broadcast.emit('new pixel', payload)
                                         }) 

NAMESPACES

-Permite separar partes de la aplicación sin que los eventos se crucen.

// Cliente                                //Servidor     
const socket = io.connect('/rooms')       io.of('/rooms').on('connection', (socket) => {

socket.emit('pixel', payload)              socket.on('pixel', (payload) => {
socket.on('new pixel', draw)                socket.emit('new pixel', payload)
                                           })                                
                                         })

ROOMS

En cada namespace podemos crear "salas" donde unimos o sacamos a un cliente.

// Cliente                                //Servidor     
const socket = io.connect('/rooms')       io.of('/rooms').on('connection', (socket) => {

socket.emit('pixel', payload)              socket.on('pixel', (payload) => {
socket.on('new pixel', draw)                socket.emit('new pixel', payload)
                                           })                                
                                         })

socket.emit('pixel', payload)            socket.on('pixel', (payload) => {
socket.on('new pixel', draw)               socket.broadcast.to('/room').emit('new pixel', payload)
                                         })   

GRACIAS TOTALES!

Socket.io

By david jaimes

Socket.io

  • 394