Repolode
LockGit

LockGit/gochat

Backend ligero de mensajería instantánea escrito en Go puro, con mensajes privados y difusión en salas por WebSocket y TCP.

Estrellas
2,937
Forks
475
Issues abiertos
30
Último commit
hace 2 meses

¿Qué es?

gochat es un sistema de mensajería instantánea implementado en Go puro. Admite mensajes privados entre dos usuarios y mensajes de difusión dentro de salas de chat; las distintas capas se comunican mediante RPC para que cada una pueda escalar horizontalmente.

Los clientes pueden conectarse por WebSocket o TCP, y los mensajes se intercambian entre ambos tipos de conexión. Los servicios se descubren entre sí mediante etcd; Redis actúa como cola de mensajes y capa de almacenamiento. En la configuración de demostración, sqlite3 con GORM se usa para los datos de usuario, pero puede sustituirse por otra base de datos relacional o por una cola más robusta, como Kafka o RabbitMQ.

El proyecto está dividido en los módulos api, connect, logic, task y site, cada uno iniciado por separado con un único binario. La configuración de Docker y un script de ejecución ponen en marcha las dependencias y una sala de chat de demostración; también hay disponible un front end independiente en TypeScript y React.

Funciones clave

  • 01Mensajes privados y mensajes de difusión en salas
  • 02Conexiones de clientes por WebSocket y TCP, con entrega entre protocolos
  • 03Descubrimiento de servicios mediante etcd y comunicación RPC entre capas
  • 04Cola de mensajes respaldada por Redis, que puede sustituirse por Kafka o RabbitMQ
  • 05Configuración con Docker en un solo comando para iniciar las dependencias y la demostración

Casos de uso

  • Aprender cómo se estructura en Go un servidor de chat escalable horizontalmente
  • Crear un prototipo de una función interna de chat o mensajería
  • Crear un backend de mensajería instantánea personalizado sobre la lógica de negocio existente

Inicio rápido

  1. 1

    Clona el repositorio

    git clone git@github.com:LockGit/gochat.git
  2. 2

    Inicia la demo con Docker usando el script incluido (dirección local)

    cd gochat && sh run.sh dev 127.0.0.1
  3. 3

    Abre http://127.0.0.1:8080 en un navegador para entrar en la sala de chat

Antes de usarlo

  • Si no usas Docker, necesitas etcd y Redis, además de iniciar manualmente varios módulos.
  • Los mensajes no se guardan en una base de datos; solo se retransmiten a través de la cola.
  • El README indica que la demo de ejemplo no habilita el canal TCP.

En colecciones

Temas

Preguntas frecuentes

¿Qué es gochat?
Backend ligero de mensajería instantánea escrito en Go puro, con mensajes privados y difusión en salas por WebSocket y TCP. gochat es un sistema de mensajería instantánea implementado en Go puro. Admite mensajes privados entre dos usuarios y mensajes de difusión dentro de salas de chat; las distintas capas se comunican mediante RPC para que cada una pueda escalar horizontalmente.
¿gochat es gratuito? ¿Qué licencia tiene?
gochat es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿gochat sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de gochat fue el 1 sept 2026.
¿Para qué puedo usar gochat?
Aprender cómo se estructura en Go un servidor de chat escalable horizontalmente Crear un prototipo de una función interna de chat o mensajería Crear un backend de mensajería instantánea personalizado sobre la lógica de negocio existente
¿Cómo se instala gochat?
Clona el repositorio: git clone git@github.com:LockGit/gochat.git Inicia la demo con Docker usando el script incluido (dirección local): cd gochat && sh run.sh dev 127.0.0.1 Abre http://127.0.0.1:8080 en un navegador para entrar en la sala de chat
¿Dónde consigo gochat?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/LockGit/gochat

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados