CoffeeChat
OpenSource im mit Server(go) und Client(flutter+swift)
️ ️ Warnung ️ ️ Es wird ständig weiterentwickelt und ist nur für den Lerngebrauch geeignet.
Nachricht
Einige Internetnutzer fragten nach Folgeaktualisierungen in Issues. Hier ist die Antwort:
In diesem Jahr ist viel los, daher bin ich mir nicht sicher, ob ich dieses Projekt aufgeben werde. Bitte verzeihen Sie mir. Die ursprüngliche Absicht mit der Initiierung dieses Projekts besteht darin, mehr über die Entwicklung von IM-Servern zu erfahren. Wenn es ein besseres IM-Projekt gibt, das in der Open-Source-Sprache Go implementiert ist, kann ich eine Teilnahme als Mitwirkender in Betracht ziehen.
Abschließend möchte ich einige aktuelle Updates veröffentlichen, um allen für ihre Besorgnis zu danken.
Neueste Nachrichten:
- Bisher: Das Leben ist endlos und die Erkundung ist endlos??
- 01.07.2022: Die v2-Architektur (basierend auf dem Kratos v2-Framework) wird derzeit entwickelt. Das Gesamtdesign wird von der pb+tcp- zur http+json-Schnittstellenmethode geändert, um die Kosten für den Einstieg zu senken. Angesichts der Freiheit und des Komforts wird derzeit eine Android-App entwickelt.
10.04.2022: Entwickeln Sie einen monatlichen Release-Plan und stellen Sie sicher, dass jeden Monat mindestens ein Release erscheint- 2021/08: Der Autor erwägt kürzlich einen Jobwechsel, daher konzentriert er sich hauptsächlich auf das Studium von OpenIM, das Erlernen der Verwendung von Kafka, Microservices, Posteingängen, Etcd, Docker, K8S usw., um die technische Tiefe zu verbessern.
- 2021/03 – 07: Die Entwicklung des QT-Clients und des plattformübergreifenden C++-SDKs macht aufgrund von Energieeinschränkungen nur langsame Fortschritte.
- 2021/02: Verwenden Sie Sketch, um die Win+Mac-Client-Schnittstelle zu entwerfen.
Zusammenfassen:
-
2022
: Beginnen Sie erneut, lernen Sie Android + Kratos + K8s und realisieren Sie die Rekonstruktion der Go-Server-v2-Version -
2021
: Hauptsächlicher Schwerpunkt auf der Erforschung von Architekturen auf Millionenebene, plattformübergreifendem C++-SDK, QT, Go-Microservices, Docker usw. CoffeeChat hat fast keine Updates -
2020
: CoffeeChat wurde dieses Jahr kontinuierlich verbessert. Der Autor lernt hauptsächlich die iOS-Entwicklung und die Implementierung einfacher iOS-Apps. -
2019/08
: CoffeeChat wurde geboren und implementierte einen einfachen Flatter-Client. Später gab ich auf, weil der Pulldown-Effekt der Flatter-Chat-Oberfläche nicht ideal war.
Kunde
Unterstützte Kunden sind:
In Entwicklung (V2)
- Android: Basierend auf Android 7.0 + Java-Implementierung, derzeit in Entwicklung (August 2022), geeignet für
V2版本
.
Angehalten (V1)
- iOS: implementiert auf Basis von Swift5, dem derzeit am häufigsten gepflegten Client, empfohlen. Gilt für
V1版本
. - Flutter: Basierend auf Flutter2 und Dart wird es nicht mehr gepflegt und dient nur zum Lernen.
- Windows: Basierend auf C++ und NetEase duilib, derzeit ist nur die Login-Funktion implementiert.
- Mac: Basierend auf C++ und Qt6 ist derzeit nur die Login-Funktion implementiert.
Bitte klicken Sie auf den entsprechenden Link, um Details anzuzeigen.
Vorschau
flattern
siehe CoffeeChat -Flutter wird derzeit nicht gepflegt und dient nur als Referenz.
schnell
Merkmale
Design
Einzelchat und Gruppenchat
Serverspezifisch
Kundenspezifisch
Merkmale
Chatbot-Funktionalität
Architektur
Modularchitektur:
Interaktionsdiagramm für ein einzelnes Chat-Modul:
Weitere Architektur anzeigen
Schnellstart
PS: Bitte in den Master -Zweig wechseln, kompilieren und ausführen!
- Server starten (erfordert 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
- Kompilieren Sie den Client. Empfohlener iOS-Client (wählen Sie iPhone 11 als Simulator), gehen Sie bitte zu: Client
- Nachdem der iOS-Simulator und die App gestartet wurden, klicken Sie auf „Registrieren“ und ändern Sie die Server-IP-Adresse in die lokale IP (keine Eingabe des Ports erforderlich). Melden Sie sich nach erfolgreicher Registrierung an.
- Es gibt 2 eingebaute Roboter (Sizhi und WeChat) und 3 Freunde, die die Chat-Funktion testen können.
Weitere Einzelheiten finden Sie unter:
stoppen:
CoffeeChat/server
$ docker-compose down -v">
$ cd CoffeeChat /server
$ docker-compose down -v
Dokumentieren
- Produkteinführung
- Architektur- und Protokolldesign
- Speicherung der Nachrichtentabelle
- Prinzipien der IM-Nachrichten-ID-Generierung und häufige technische Schwierigkeiten
- Zeitplan
- Praxis und Auswahl von MQ im IM
Weitere Artikel finden Sie unter:
Denkt
- Am wichtigsten: Erlernen Sie hauptsächlich einige Fähigkeiten in der Go-Engineering-Praxis, die sich noch im Forschungsstadium befindet.
- Open-IM-Server: Durch die Analyse seiner Architektur und seines Codes habe ich den Posteingangsmechanismus und die Aufteilungspraxis von im-Microservices (go) verstanden.
- goim: Erfahren Sie, wie Kafka in Chatroom-Szenarien unter einer Architektur auf Millionenebene angewendet wird.
- Terry-Ye/im: In Kombination mit Goim verstand ich die Bedeutung des sogenannten Jobs und die Struktur von Goim.
- gim: Ein einfaches Schreibdiffusionsprojekt, das ein tieferes Verständnis der Architektur und Prinzipien der Schreibdiffusion vermitteln kann.
Weitere Open-Source-IMs finden Sie unter: Das umfassendste Inventar an Open-Source-IMs in der Geschichte
Kontakt
E-Mail:[email protected]
WeChat-Kommunikation: xuyc1992 (bitte beachten: im)
Wenn es Ihnen gefällt, folgen Sie bitte dem öffentlichen Konto?
„Go and Distributed IM“??
LIZENZ
CoffeeChat wird unter der MIT-Lizenz bereitgestellt.