Skip to content

Instantly share code, notes, and snippets.

@Klerith
Created December 22, 2025 17:23
Show Gist options
  • Select an option

  • Save Klerith/9a33fd7f915a8df3bbd856ba82db14f2 to your computer and use it in GitHub Desktop.

Select an option

Save Klerith/9a33fd7f915a8df3bbd856ba82db14f2 to your computer and use it in GitHub Desktop.
Partidos políticos - README

WebSocket Server - Partidos Políticos

Ejecutar en dev

  1. Clonar proyecto
  2. Ejecutar bun install
  3. Crear .env basado en .env.template
  4. Ejecutar bun run dev

Probar en el navegador

  1. Abrir el archivo http://localhost:3200 en el navegador
  2. En la consola crear el mensaje así:
const message = {
  type: 'INCREMENT_VOTES',
  payload: {
    id: 'un-identificador-de-un-partido',
  },
};
  1. Usar el objeto socket para enviar el mensaje
socket.send(JSON.stringify(message));
  1. Ver el resultado en la consola del navegador

Documentación

A continuación se enumeran los tipos de mensajes (MessageType) que el servidor WebSocket acepta, junto con el payload esperado para cada uno:

Ejemplo de mensaje:

const message = {
  type: 'INCREMENT_VOTES',
  payload: {
    id: 'un-identificador-de-un-partido',
  },
};

Tipos de mensaje (MessageType)

  • GET_PARTIES
    Solicita la lista de partidos políticos.
    Payload: No es necesario, puede omitirse o ser un objeto vacío.

  • ADD_PARTY
    Agrega un nuevo partido político.
    Payload:

    {
      "name": "Nombre del partido",
      "color": "#HEX", // o rgba
      "borderColor": "#HEX" // o rgba
    }
  • UPDATE_PARTY
    Actualiza los datos de un partido existente.
    Payload:

    {
      "id": "id-del-partido", // este no se actualizará, solo se usa para identificar el partido
      "name": "Nuevo nombre (opcional)",
      "color": "#HEX (opcional)", // o rgba
      "borderColor": "#HEX (opcional)" // o rgba
    }
  • DELETE_PARTY
    Elimina un partido por su ID.
    Payload:

    {
      "id": "id-del-partido"
    }
  • INCREMENT_VOTES
    Suma 1 voto al partido especificado.
    Payload:

    {
      "id": "id-del-partido"
    }
  • DECREMENT_VOTES
    Resta 1 voto al partido especificado.
    Payload:

    {
      "id": "id-del-partido"
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment