CoffeeChat
Soy de código abierto con servidor (ir) y cliente (flutter+swift)
️ ️ Advertencia ️ ️ Está en continuo desarrollo y sólo es adecuado para uso educativo.
Noticias
Algunos internautas preguntaron sobre las actualizaciones de seguimiento en Issues. Aquí está la respuesta:
Están sucediendo muchas cosas este año, por lo que el progreso es muy lento. No estoy seguro de abandonar este proyecto. La razón principal es que el autor tiene energía limitada. La intención original de iniciar este proyecto es aprender más sobre el desarrollo del servidor de mensajería instantánea. Si hay un mejor proyecto de mensajería instantánea implementado en lenguaje Go de código abierto, puedo considerar participar como colaborador.
Finalmente, me gustaría publicar algunas actualizaciones recientes para agradecer a todos por su preocupación.
Últimas noticias:
- Hasta ahora: ¿La vida es infinita y la exploración es infinita?
- 01/07/2022: La arquitectura v2 (basada en el marco kratos v2) se está desarrollando actualmente. El diseño general se cambia de pb+tcp al método de interfaz http+json para reducir el costo de inicio. Teniendo en cuenta la libertad y la experiencia conveniente, actualmente se está desarrollando una aplicación para Android.
10/04/2022: Desarrolle un plan de lanzamiento mensual y garantice al menos un lanzamiento cada mes- 2021/08: El autor está considerando cambiar de trabajo recientemente, por lo que se enfoca principalmente en estudiar OpenIM, aprender el uso de Kafka, microservicios, bandejas de entrada, Etcd, Docker, K8S, etc. para mejorar la profundidad técnica.
- 2021/03 - 07: Desarrollo del cliente QT y el SDK multiplataforma de C++, el progreso es lento debido a limitaciones de energía.
- 2021/02: Utilice Sketch para diseñar la interfaz del cliente win+mac.
Resumir:
-
2022
: comience de nuevo, aprenda android + kratos + k8s y realice la reconstrucción de la versión go server v2 -
2021
: Centrándose principalmente en explorar arquitectura de millones de niveles, SDK multiplataforma de C++, QT, microservicios Go, Docker, Etcd, etc. CoffeeChat casi no tiene actualizaciones -
2020
: CoffeeChat se ha mejorado continuamente este año. El autor está aprendiendo principalmente sobre el desarrollo de iOS y la implementación de aplicaciones de iOS simples. -
2019/08
: Nació CoffeeChat . Aprendí flutter e implementé un cliente de flutter simple. Más tarde, me di por vencido porque el efecto desplegable de la interfaz de chat de flutter no era ideal.
Cliente
Los clientes admitidos son:
En desarrollo (V2)
- Android: Basado en implementación android 7.0 + java, actualmente en desarrollo (agosto 2022), apto para servidor
V2版本
.
En pausa (V1)
- iOS: implementado en base a swift5, actualmente el principal cliente mantenido, recomendado. Aplicable al servidor
V1版本
. - Flutter: Basado en flutter2 y dart, ya no se mantiene y es solo para aprendizaje.
- Windows: basado en C++ y NetEase duilib, actualmente solo está implementada la función de inicio de sesión.
- Mac: basado en c++ y Qt6, actualmente solo está implementada la función de inicio de sesión.
Haga clic en el enlace correspondiente para ver los detalles.
Avance
aleteo
consulte CoffeeChat -Flutter no se mantiene por el momento y es solo como referencia.
rápido
Características
diseño
Chat individual y chat grupal
Específico del servidor
Específico del cliente
Características
Funcionalidad del chatbot
Arquitectura
Arquitectura del módulo:
Diagrama de interacción del módulo de chat único:
Ver más arquitectura
Inicio rápido
PD: ¡Cambie a la rama maestra , compile y ejecute!
- Inicie el servidor (requiere Docker Desktop >= 4.0.1):
CoffeeChat/server
# 从代码编译docker镜像,安装mysql,redis等依赖,并自动初始化mysql数据
$ docker-compose up -d">
$ git clone https://github.com/xmcy0011/CoffeeChat.git
$ cd CoffeeChat /server
# 从代码编译docker镜像,安装mysql,redis等依赖,并自动初始化mysql数据
$ docker-compose up -d
- Compile el cliente. Cliente iOS recomendado (seleccione iPhone 11 para el simulador), vaya a: cliente
- Después de iniciar el simulador y la aplicación de iOS, haga clic en "Registrarse" y cambie la dirección IP del servidor a la IP local (no es necesario ingresar el puerto). Después del registro exitoso, inicie sesión.
- Hay 2 robots integrados (Sizhi y WeChat) y 3 amigos que pueden probar la función de chat.
Para obtener más detalles, visite:
detener:
CoffeeChat/server
$ docker-compose down -v">
$ cd CoffeeChat /server
$ docker-compose down -v
Documento
- Introducción del producto
- Diseño de arquitectura y protocolo.
- Almacenamiento de tabla de mensajes
- Principios de generación de ID de mensajes de mensajería instantánea y dificultades técnicas comunes
- cronograma
- Práctica y selección de MQ en IM.
Para obtener más artículos, visite:
piensa
- Lo más importante: principalmente aprender algunas habilidades en su práctica de ingeniería, que aún se encuentra en la etapa de investigación.
- Open-IM-Server: Al analizar su arquitectura y código, entendí el mecanismo de la bandeja de entrada y la práctica de división de los microservicios de mensajería instantánea (ir).
- goim: aprenda cómo se aplica kafka en escenarios de salas de chat bajo una arquitectura de un millón de niveles.
- Terry-Ye/im: Combinado con goim, entendí el significado del llamado trabajo y la estructura de goim.
- gim: un proyecto simple de difusión de escritura que puede proporcionar una comprensión más profunda de la arquitectura y los principios de la difusión de escritura.
Para obtener más mensajería instantánea de código abierto, visite: El inventario más completo de mensajería instantánea de código abierto de la historia
Contacto
correo electrónico:[email protected]
Comunicación WeChat: xuyc1992 (tenga en cuenta: im)
Si te gusta, sigue la cuenta pública.
¿"Ir y distribuir mensajería instantánea"?
LICENCIA
CoffeeChat se proporciona bajo la licencia mit.