CoffeeChat
opensource im com servidor (go) e cliente (flutter + swift)
️ ️ Aviso ️ ️ Ele está em desenvolvimento contínuo e é adequado apenas para uso educacional.
Notícias
Alguns internautas perguntaram sobre atualizações de acompanhamento em Issues.
Há muitas coisas acontecendo este ano, então o progresso é muito lento. Não tenho certeza se abandonarei este projeto. O principal motivo é que o autor tem energia limitada. A intenção original de iniciar este projeto é aprender mais sobre o desenvolvimento de servidores de mensagens instantâneas. Se houver um projeto de mensagens instantâneas melhor implementado na linguagem Go de código aberto, posso considerar participar como contribuidor.
Por fim, gostaria de postar algumas atualizações recentes para agradecer a todos pela preocupação.
Últimas notícias:
- Até agora: a vida é infinita e a exploração é infinita?
- 01/07/2022: A arquitetura v2 (baseada na estrutura kratos v2) está sendo desenvolvida atualmente. O design geral foi alterado do método de interface pb+tcp para http+json para reduzir o custo de introdução. Considerando a liberdade e a experiência conveniente, um aplicativo Android está sendo desenvolvido.
10/04/2022: Desenvolva um plano de lançamento mensal e garanta pelo menos um lançamento por mês- 2021/08: O autor está pensando em mudar de emprego recentemente, então ele se concentra principalmente em estudar OpenIM, aprendendo o uso de Kafka, microsserviços, caixas de entrada, Etcd, Docker, K8S, etc.
- 2021/03 - 07: Desenvolvimento do cliente QT e SDK de plataforma cruzada C++, o progresso é lento devido a restrições de energia.
- 2021/02: Use o Sketch para projetar a interface do cliente win+mac.
Resumir:
-
2022
: Comece de novo, aprenda android + kratos + k8s e realize a reconstrução da versão go server v2 -
2021
: Foco principalmente na exploração da arquitetura de milhões de níveis, SDK de plataforma cruzada C++, QT, microsserviços Go, Docker, Etcd, etc. CoffeeChat quase não tem atualizações -
2020
: CoffeeChat foi continuamente aprimorado este ano. O autor está aprendendo principalmente o desenvolvimento de iOS e a implementação de aplicativos iOS simples. -
2019/08
: Nasceu CoffeeChat . Aprendi flutter e implementei um cliente flutter simples. Mais tarde, desisti porque o efeito pull-down da interface de chat flutter não era ideal.
Cliente
Os clientes suportados são:
Em desenvolvimento (V2)
- Android: Baseado na implementação Android 7.0 + Java, atualmente em desenvolvimento (agosto de 2022), adequado para servidor
V2版本
.
Pausado (V1)
- iOS: implementado com base no swift5, atualmente o principal cliente mantido, recomendado. Aplicável ao servidor
V1版本
. - Flutter: Baseado em flutter2 e dart, não é mais mantido e serve apenas para aprendizado.
- Windows: Baseado em C++ e NetEase duilib, atualmente apenas a função de login está implementada.
- Mac: Baseado em c++ e Qt6, atualmente apenas a função de login está implementada.
Clique no link correspondente para ver os detalhes.
Visualização
vibrar
consulte CoffeeChat -Flutter não é mantido por enquanto e é apenas para referência.
rápido
Características
projeto
Bate-papo único e bate-papo em grupo
Específico do servidor
Específico do cliente
Características
Funcionalidade do chatbot
Arquitetura
Arquitetura do módulo:
Diagrama de interação do módulo de chat único:
Veja mais arquitetura
Início rápido
PS: Por favor, mude para o branch master , compile e execute!
- Iniciar servidor (requer 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 o cliente. Cliente iOS recomendado (selecione iphone 11 para simulador), acesse: cliente
- Após o simulador iOS e o aplicativo serem iniciados, clique em "Registrar" e altere o endereço IP do servidor para o IP local (não há necessidade de inserir a porta. Após o registro bem-sucedido, faça login).
- Existem 2 robôs integrados (Sizhi e WeChat) e 3 amigos, que podem testar a função de chat.
Para mais detalhes, acesse:
parar:
CoffeeChat/server
$ docker-compose down -v">
$ cd CoffeeChat /server
$ docker-compose down -v
Documento
- Introdução do produto
- Arquitetura e design de protocolo
- Armazenamento de tabela de mensagens
- Princípios de geração de ID de mensagem IM e dificuldades técnicas comuns
- agendar
- Prática e seleção de MQ em IM
Para mais artigos, acesse:
Pensa
- O mais importante: aprender principalmente algumas habilidades em sua prática de engenharia, que ainda está em fase de pesquisa.
- Open-IM-Server: Ao analisar sua arquitetura e código, entendi o mecanismo de caixa de entrada e a prática de divisão de microsserviços im (go).
- goim: Aprenda como o kafka é aplicado em cenários de salas de bate-papo em uma arquitetura de um milhão de níveis.
- Terry-Ye/im: Combinado com goim, entendi o significado do chamado trabalho e a estrutura do goim.
- gim: Um projeto simples de difusão de escrita que pode fornecer uma compreensão mais profunda da arquitetura e dos princípios da difusão de escrita.
Para obter mais mensagens instantâneas de código aberto, acesse: O inventário mais abrangente de mensagens instantâneas de código aberto da história
Contato
e-mail:[email protected]
Comunicação WeChat: xuyc1992 (observe: im)
Se gostar, siga a conta pública?
"Vá e IM Distribuído"??
LICENÇA
CoffeeChat é fornecido sob a licença mit.