Servicio de chat con Node.js y despliegue en Heroku

Difundiendo el mensaje

Nuestro servidor ya recibe los mensajes, ahora tenemos que difundirlos a los clientes conectados para mostrarlos en el chat, esto es lo que se conoce como hacer un "broadcast" del mensaje.

Para hacer una difusión global lo haremos a nivel del servidor y no del socket del cliente con un evento que podemos llamar difundir_mensaje:

server.js

socket.on('nuevo_mensaje', (message) => {
  // Dinfundimos el mensaje a todos los clientes
  io.sockets.emit('difundir_mensaje', message)
})

Ahora tenemos que capturar este evento en el cliente, recuperar el objeto message recibido y mostrarlo:

public/index.html

// Recuperamos el mensaje y lo añadimos al HTML
socket.on('difundir_mensaje', function(message) {
  $("#chat")
    .append(`
      <b>${message.name}</b>
      ${message.content}<br>`)
})

¡Listo! Por increíble que parezca con esto tenemos un protitpo completamente funcional, probad a abrir varias ventanas y hablar con diferentes nombres.

Sin embargo no quiero dejar el chat como está, creo que es una buena oportunidad para analizar algunos problemas que existen a niel de cliente y solucionarlos.