CoffeeChat
je suis open source avec le serveur (go) et le client (flutter+swift)
️ ️ Avertissement ️ ️ Il est en développement continu et ne convient qu'à un usage pédagogique.
Nouvelles
Certains internautes ont posé des questions sur les mises à jour de suivi dans Issues. Voici la réponse :
Il se passe beaucoup de choses cette année, donc les progrès sont très lents. Je ne sais pas si j'abandonnerai ce projet. La raison principale est que l'auteur a une énergie limitée. L'intention initiale du lancement de ce projet est d'en savoir plus sur le développement de serveurs de messagerie instantanée. S'il existe un meilleur projet de messagerie instantanée implémenté en langage Go open source, je pourrais envisager de participer en tant que contributeur.
Enfin, j'aimerais publier quelques mises à jour récentes pour remercier tout le monde pour leur préoccupation.
Dernières nouvelles :
- Jusqu'à présent : la vie est sans fin et l'exploration est sans fin ?
- 01/07/2022 : L'architecture v2 (basée sur le framework kratos v2) est en cours de développement. La conception globale passe de la méthode d'interface pb+tcp à http+json pour réduire le coût de démarrage. Compte tenu de la liberté et de l’expérience pratique, une application Android est actuellement en cours de développement.
2022/04/10 : Développer un plan de version mensuelle et assurer au moins une version chaque mois- 2021/08 : L'auteur envisage de changer de travail récemment, il se concentre donc principalement sur l'étude d'OpenIM, l'apprentissage de l'utilisation de Kafka, des microservices, des boîtes de réception, Etcd, Docker, K8S, etc. pour améliorer la profondeur technique.
- 2021/03 - 07 : Développement du client QT et du SDK multiplateforme C++, les progrès sont lents en raison de contraintes énergétiques.
- 2021/02 : Utiliser Sketch pour concevoir l'interface client win+mac.
Résumer:
-
2022
: Recommencez, apprenez android + kratos + k8s, et réalisez la reconstruction du serveur go version v2 -
2021
: se concentre principalement sur l'exploration de l'architecture au niveau d'un million, du SDK multiplateforme C++, de QT, des microservices Go, de Docker, d'Etcd, etc. CoffeeChat n'a presque aucune mise à jour -
2020
: CoffeeChat a été continuellement amélioré cette année. L'auteur apprend principalement le développement iOS et implémente des applications iOS simples. -
2019/08
: CoffeeChat est né. J'ai appris Flutter et implémenté un simple client Flutter. Plus tard, j'ai abandonné car l'effet déroulant de l'interface de chat Flutter n'était pas idéal.
Client
Les clients pris en charge sont :
En développement (V2)
- Android : basé sur l'implémentation Android 7.0 + Java, actuellement en cours de développement (août 2022), adapté au serveur
V2版本
.
En pause (V1)
- iOS : implémenté sur la base de Swift5, actuellement le principal client maintenu, recommandé. Applicable au serveur
V1版本
. - Flutter : Basé sur flutter2 et dart, il n'est plus maintenu et sert uniquement à l'apprentissage.
- Windows : Basé sur C++ et NetEase duilib, actuellement seule la fonction de connexion est implémentée.
- Mac : Basé sur C++ et Qt6, actuellement seule la fonction de connexion est implémentée.
Veuillez cliquer sur le lien correspondant pour afficher les détails.
Aperçu
battement
voir CoffeeChat -Flutter n'est pas maintenu pour le moment et est uniquement à titre de référence.
rapide
Caractéristiques
conception
Chat unique et chat de groupe
Spécifique au serveur
Spécifique au client
Caractéristiques
Fonctionnalité de chatbot
Architecture
Architecture des modules :
Schéma d'interaction du module de chat unique :
Voir plus d'architecture
Démarrage rapide
PS : veuillez passer à la branche master , compiler et exécuter !
- Démarrer le serveur (nécessite 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
- Compilez le client. Client iOS recommandé (sélectionnez iPhone 11 pour le simulateur), veuillez accéder à : client
- Une fois le simulateur et l'application iOS démarrés, cliquez sur "Enregistrer" et remplacez l'adresse IP du serveur par l'adresse IP locale (pas besoin de saisir le port). Une fois l'enregistrement réussi, connectez-vous.
- Il y a 2 robots intégrés (Sizhi et WeChat) et 3 amis qui peuvent tester la fonction de chat.
Pour plus de détails, veuillez consulter :
arrêt:
CoffeeChat/server
$ docker-compose down -v">
$ cd CoffeeChat /server
$ docker-compose down -v
Document
- Présentation du produit
- Conception d'architecture et de protocole
- Stockage de la table des messages
- Principes de génération d'ID de message IM et difficultés techniques courantes
- calendrier
- Pratique et sélection de MQ en IM
Pour plus d’articles, veuillez consulter :
pense
- le plus important : acquérir principalement certaines compétences dans sa pratique d'ingénierie, qui est encore au stade de la recherche.
- Open-IM-Server : En analysant son architecture et son code, j'ai compris le mécanisme de la boîte de réception et la pratique de division des microservices im (go).
- goim : Découvrez comment kafka est appliqué dans des scénarios de salons de discussion sous une architecture à un million de niveaux.
- Terry-Ye/im : En combinaison avec le goim, j'ai compris le sens du soi-disant travail et la structure du goim.
- gim : Un projet simple de diffusion en écriture qui peut fournir une compréhension plus approfondie de l'architecture et des principes de la diffusion en écriture.
Pour en savoir plus sur la messagerie instantanée open source, veuillez consulter : L'inventaire le plus complet de l'histoire de la messagerie instantanée open source.
Contact
e-mail : [email protected]
Communication WeChat : xuyc1992 (veuillez noter : im)
Si vous l'aimez, veuillez suivre le compte public ?
"Allez et messagerie instantanée distribuée" ??
LICENCE
CoffeeChat est fourni sous la licence mit.