️ Besondere Erinnerung: Wenn der Download von Github langsam ist, gehen Sie bitte zu: https://gitee.com/jackjiang/MobileIMSDK. Der Code ist vollständig synchronisiert, Sie können ihn also gerne herunterladen. ️
❤️Neueste Nachrichten: Hongmeng Die nächste Version von MobileIMSDK wurde veröffentlicht❤️
1. Verknüpfungsverzeichnis
1.1. Theoretische Informationen
- Klassiker zur Netzwerkprogrammierungstheorie „TCP/IP Detaillierte Erklärung“ (Online-Leseversion)
1.2. Verwandte Informationen
- MobileIMSDK-Versionsaktualisierungsprotokoll
- MobileIMSDK-FAQ?
- MobileIMSDK-Leistungstestbericht
1.3. Produktfälle
- RainbowChat-Testversion?
- Screenshot-Vorschau der RainbowChat-Testversion
- Einige nicht sensible Betriebsdaten eines bestimmten Chats
1.4. Demo-Installation
- Client-Demo-Installations- und Nutzungshilfe (Android)
- Client-Demo-Installations- und Nutzungshilfe (iOS)
- Client-Demo-Installations- und Nutzungshilfe (Java)
- Demonstration und Beschreibung der Client-Demo (H5)
- Demonstration und Erklärung der Client-Demo (WeChat-Applet)
- Client-Demo-Demonstration und Anweisungen (Uniapp)
- Demonstration und Erklärung der Kundendemo (Hongmeng Next)?
- Serverseitige Demo-Bereitstellungs- und Nutzungshilfe
1.5. Entwicklungsleitfaden
- Client-Entwicklungshandbuch (Android)
- Client-Entwicklungshandbuch (iOS)
- Client-Entwicklungshandbuch (Java)
- Client-Entwicklungsleitfaden (H5)
- Client-Entwicklungsleitfaden (WeChat Mini-Programm)
- Client-Entwicklungsleitfaden (Uniapp)
- Client-Entwicklungsleitfaden (Hongmeng Next)
- Leitfaden zur Serverentwicklung
1.6. API-Dokumentation
- Client-SDK-API-Dokumentation (Android): TCP-Version, UDP-Version
- Client-SDK-API-Dokumentation (iOS): TCP-Version, UDP-Version
- Client-SDK-API-Dokumentation (Java): TCP-Version, UDP-Version
- Client-SDK-API-Dokumentation (H5): Klicken Sie hier, um einzutreten
- Client-SDK-API-Dokumentation (WeChat-Applet): Klicken Sie hier, um einzutreten
- Client-SDK-API-Dokumentation (Uniapp): Klicken Sie hier, um einzutreten
- Client-SDK-API-Dokumentation (Hongmeng Next): vollständiges Handbuch, API-Dokumentation
- Dokumentation zur Server-SDK-API
1.7. Paket-Download
- MobileIMSDK-Paket der neuesten Version herunterladen?
- Ausländische Adresse: Github-Adresse von MobileIMSDK
- Inländische Adresse: Code-Cloud-Gitee-Adresse von MobileIMSDK (schneller Zugriff!)
1.8. Lernen und Kommunikation
- Technische Austausch-Community: Klicken Sie hier, um teilzunehmen
- FAQ-Diskussion: Klicken Sie hier, um teilzunehmen?
- Technischer Austausch Q-Gruppe:
215477170
? - Für technische Unterstützung/Zusammenarbeit/Beratung wenden Sie sich bitte an den Autor QQ:
413980957
(Über den Autor?) - Folgen Sie meinem offiziellen Konto: :point_down: :point_down:
2. Projekteinführung
MobileIMSDK ist ein ursprüngliches IM-Kommunikationsschicht-Framework, das speziell für mobile Endgeräte entwickelt wurde:
- Es wurde 10 Jahre lang getestet;
- Das ultraleichte und hochentwickelte lib-Paket ist nur 50 KB groß;
- Sorgfältig gekapselt unterstützt eine Reihe von APIs auf elegante Weise drei Protokolle: UDP , TCP und WebSocket (wahrscheinlich das einzige Open-Source-Protokoll im gesamten Netzwerk);
- Der Client unterstützt iOS, Android, Standard-Java, H5 (noch nicht Open Source), Miniprogramm (noch nicht Open Source), Uniapp (noch nicht Open Source), Hongmeng Next (SDK noch nicht Open Source, Demo vollständiger Quellcode);
- Der Server basiert auf Netty, mit hervorragender Leistung und einfacher Erweiterung;
- Es kann nahtlos mit dem Schwesterprojekt MobileIMSDK-Web zusammenarbeiten, um Web-Chat oder Push usw. zu realisieren :point_left:
- Es kann auf verschiedene Szenarien wie geräte- und netzwerkübergreifende Chat-Apps, Unternehmens-OA und Nachrichten-Push angewendet werden.
Das MobileIMSDK-Projekt wurde seit Oktober 2013 kontinuierlich aktualisiert (die neueste Version ist v6.5, klicken Sie hier, um das Versionsaktualisierungsprotokoll anzuzeigen. Nach 10 Jahren wurde es zunächst als unterste Ebene des Instant Messaging für ein Produkt zur Eigennutzung verwendet). und wurde komplett von Grund auf neu entwickelt.
Derzeit wurde die neueste Version von Hongmeng Next entwickelt. Ich hoffe, dass sie die Bedürftigen inspirieren und helfen kann.
Möglicherweise benötigen Sie: Weitere Fragen und Antworten zu MobileIMSDK anzeigen.
Ein weiteres Schwesterprojekt: das leichtgewichtige webseitige Instant-Messaging-Framework: MobileIMSDK-Web wird ebenfalls kontinuierlich aktualisiert und widmet sich dem Web-Chat und Message-Push auf Mobiltelefonen oder PCs.
3. Synchrone Aktualisierung des Code-Hostings
Code Cloud Gitee
- Code-Hosting: https://gitee.com/jackjiang/MobileIMSDK
- Technologie-Community: Klicken Sie hier, um weitere Informationen anzuzeigen
GitHub.com
- Code-Hosting: https://github.com/JackJiang2011/MobileIMSDK
- Technologie-Community: Klicken Sie hier, um weitere Informationen anzuzeigen
MobileIMSDK-Versionsaktualisierungsprotokoll: Klicken Sie hier, um es anzuzeigen?
4. Designziele
Lassen Sie Entwickler sich auf die Entwicklung der Anwendungslogik konzentrieren复杂的即时通讯算法交由SDK开发人员
, wodurch解偶即时通讯应用开发的复杂性
.
5. Rahmenzusammensetzung
Das gesamte MobileIMSDK-Framework besteht aus den folgenden 7 Teilen:
- Android-Client-SDK: wird für die Android-Version des Instant-Messaging-Clients verwendet, unterstützt Android 4.0 und höher, API-Dokumentation anzeigen;
- iOS-Client-SDK: wird zur Entwicklung des iOS-Instant-Messaging-Clients verwendet, unterstützt iOS 12.0 und höher, API-Dokumentation anzeigen;
- Java-Client-SDK: wird zur Entwicklung plattformübergreifender PC-Instant-Messaging-Clients verwendet und unterstützt Java 1.6 und höher, siehe API-Dokumentation;
- H5-Client-SDK: Es gibt noch keine Open-Source-Version. Bitte überprüfen Sie die verfeinerte kommentierte Version.
- WeChat Mini Program SDK: Es gibt noch keine Open-Source-Version. Bitte überprüfen Sie die bearbeitete und kommentierte Version.
- Uniapp SDK: Es gibt noch keine Open-Source-Version. Bitte überprüfen Sie die bearbeitete und kommentierte Version.
- Hongmeng Next SDK: Derzeit gibt es keine Open-Source-Version des SDK (siehe die verfeinerte kommentierte Version) und den vollständigen Projektquellcode der Demo;
- Server-SDK: wird zur Entwicklung von Instant-Messaging-Servern verwendet, unterstützt Java 1.7 und höher, bitte sehen Sie sich die API-Dokumentation an.
Die Architektur des gesamten MobileIMSDK-Frameworks besteht aus:
MobileIMSDK wurde kontinuierlich weiterentwickelt und aktualisiert, und der Hongmeng Next-Client ist die neueste Errungenschaft des MobileIMSDK-Projekts.
Außerdem: MobileIMSDK kann nahtlos mit seinem Schwesterprojekt MobileIMSDK-Web zusammenarbeiten und ermöglicht so Chat oder Push auf der Webseite.
6. Technische Eigenschaften
- Bewährt: Nach 10 Jahren wurde es kontinuierlich von der Andriod 2.3- und iOS 5.0-Ära bis zur Gegenwart aktualisiert (es ist keineswegs unvollendet);
- Superleicht: Hochentwickeltes lib-Paket mit 50 KB;
- Mehrere Protokolle: Es ist möglicherweise das einzige Open-Source-Framework seiner Art im gesamten Netzwerk, das drei Protokolle, UDP, TCP und WebSocket, gleichzeitig mit einem Satz APIs unterstützen kann?;
- Mehrere Netzwerke: Sorgfältig optimierte TCP-, UDP- und WebSocket-Protokollimplementierungen können auf Satellitennetzwerke, Mobilfunknetzwerke, eingebettetes IoT und andere Szenarien angewendet werden;
- Abdeckung mehrerer Terminals: Der Client unterstützt iOS, Android, Standard-Java, H5, WeChat-Applet, Uniap und Hongmeng Next;
- Effiziente Kosteneffizienz: Durch die einzigartige Implementierung des UDP-Protokolls ohne Verbindungsmerkmale können unter gleichen Bedingungen eine höhere Netzwerklast und eine höhere Durchsatzleistung erreicht werden.
- Nachrichtenrichtung: Unterstützt alle möglichen Richtungen von Nachrichten in der Instant Messaging-Technologie, insgesamt 3 Typen (d. h. C2C, C2S, S2C);
- Sticky und Half-Packet: Löst auf elegante Weise die klassischen Sticky- und Half-Packet-Probleme von TCP an jedem Ende. Die untere Schicht ist gekapselt und die Anwendungsschicht ist völlig unsichtbar.
- QoS-Mechanismus: Vollständiger Garantiemechanismus für die Nachrichtenzustellung (automatische Neuübertragung, Nachrichtendeduplizierung, Statusrückmeldung usw.), um sicherzustellen, dass keine Nachricht verpasst wird;
- Robust und zuverlässig: Die Praxis hat gezeigt, dass es sich sehr gut für einen stabilen und zuverlässigen Betrieb in kontinentalübergreifenden Umgebungen mit hoher Latenz und in Umgebungen mit unterschiedlichen Netzwerkstandards eignet.
- Wiederherstellung von Netzwerkunterbrechungen: Es verfügt über die Fähigkeit, Netzwerkbedingungen automatisch zu erkennen und Netzwerkunterbrechungen automatisch zu beheben.
- Ursprünglicher Algorithmus: Der Kernalgorithmus und die Implementierung sind alle original und bieten Raum für kontinuierliche Verbesserung und Verbesserung.
- Mehrere Modi: Legen Sie mehrere Echtzeit-Empfindlichkeitsmodi fest, um die Unmittelbarkeit, den Datenverkehr und den Stromverbrauch des Clients je nach Szenario zu steuern.
- Datenkomprimierung: Mit einem eigenen Protokoll implementiert, kann die Datenkomprimierung in Zukunft angepasst werden, um den Client-Verkehr und den Server-Netzwerkdurchsatz flexibel zu steuern;
- Hoch gekapselt: Die hoch gekapselte API-Schnittstelle gewährleistet die Einfachheit des Aufrufs und macht sie auch auf mehr Anwendungsszenarien anwendbar.
- Web-Unterstützung: Es kann nahtlos mit dem Schwesterprojekt MobileIMSDK-Web zusammenarbeiten, um Webseiten-Chat oder Push usw. zu realisieren :point_left:
- Gute Skalierbarkeit: Der Server basiert auf Netty und übernimmt die hervorragende hohe Skalierbarkeit von Netty;
- Hervorragende Leistung: Der Server erbt die Hochleistungs- und Durchsatzfunktionen von Netty und eignet sich für Hochleistungsserverszenarien.
Alle drei von MobileIMSDK unterstützten Arten von Instant-Messaging-Nachrichtentrends sind:
(1) Client-to-Client (C2C): Es wird von einem Client initiiert und der Empfänger ist ein anderer Client;
(2) Client to Server (C2S): Wird von einem Client initiiert und der Empfänger ist der Server.
(3) Server zu Client (S2C): Es wird vom Server initiiert und der Empfänger ist ein Client.
Möglicherweise benötigen Sie: Weitere Fragen und Antworten zu MobileIMSDK anzeigen.
7. Leistungstest
Stresstests zeigen, dass bei der Verwendung von MobileIMSDK in Push-Szenarien die theoretische Auslastung einer einzelnen Maschine mehrere zehn Millionen erreichen kann. Beim Einsatz in Chat-Anwendungen kann die Belastung einer einzelnen Maschine Hunderttausende erreichen.
Natürlich hat jede Anwendung ihre eigenen Eigenschaften und Unterschiede. Bitte bewerten Sie sie anhand spezifischer Szenarien. Die Testdaten dienen nur als Referenz.
Leistungstestbericht: Klicken Sie hier, um ihn anzuzeigen.
8. Demonstrationsprogramm
- Android-Client-Demo: Klicken Sie hier, um es zu installieren und zu verwenden;
- iOS-Client-Demo: Klicken Sie hier, um es zu installieren und zu verwenden;
- Java-Client-Demo: Klicken Sie hier, um es zu installieren und zu verwenden;
- H5-Client-Demo: Klicken Sie hier, um die Einführung anzuzeigen;
- Demo des WeChat Mini-Programms: Klicken Sie hier, um die Einführung anzuzeigen.
- Uniapp-Demo: Klicken Sie hier, um die Einführung anzuzeigen;
- Hongmeng Nächste Demo: Klicken Sie hier, um die Einführung anzuzeigen?;
- Server-Demo: Klicken Sie hier, um es zu installieren und zu verwenden.
9. Anwendungsfälle
① Chat-App auf Produktebene basierend auf MobileIMSDK:
Detaillierte Einführung, Download-Erlebnis oder laufende Screenshots ansehen.
② MobileIMSDK-Fall unter hoher Netzwerkverzögerung:
Ein bestimmtes kommerzielles Produkt, das auf MobileIMSDK basiert, wird einmal in einer komplexen interkontinentalen Netzwerkumgebung betrieben. Die End-to-End-Kommunikationsverzögerung kann bis zu mehr als 600 ms betragen, wenn das interkontinentale Netzwerk ausgelastet ist (die Einwegverzögerung mit dem Server beträgt etwa 300 ms). , und normalerweise, wenn Leute Inlandsbesuche tätigen. Die Latenzzeit von Mainstream-Portalen beträgt etwa 20 bis 50 ms. Klicken Sie hier, um nicht sensible Betriebsdaten für einen bestimmten Zeitraum anzuzeigen.
10. Paket-Download (alles in einem)
? ① Neueste Release-Version (Adresse im Ausland): Github-Paket-Download
? ② Neueste Release-Version (inländische Adresse): Code-Cloud-Gitee-Paket-Download (schneller Zugriff! ?)
Hinweis: Das neueste Release-Paket enthält vollständigen Demo-Quellcode, SDK-Quellcode, API-Dokumentation, kompiliertes Distributionspaket usw.
11. Typische Anwendungsszenarien
Szenario 1: Chat-APP
- Anwendungsbeschreibung: Es kann zur Entwicklung von Chat-Tools ähnlich wie WeChat, QQ usw. verwendet werden.
- Nachrichtenrichtung: Es müssen alle Arten von C2C, C2S und S2C verwendet werden.
- Besonderer Hinweis: MobileIMSDK definiert nicht die Anwendungsebenenlogik und -protokolle von Chat-Anwendungen. Entwickler können diese selbst definieren und implementieren.
Szenario 2: Nachrichten-Push
- Anwendungsbeschreibung: Kann für verschiedene Arten von APPs verwendet werden, die Informationen in Echtzeit an Clients weiterleiten müssen.
- Nachrichtenrichtung: Es wird nur eine Nachrichtenrichtung von S2C verwendet. Dies ist das einfachste Anwendungsszenario von MobileIMSDK.
Szenario 3: Unternehmens-OA
- Anwendungsbeschreibung: Es kann verwendet werden, um verschiedene Nachrichten wie Anweisungen, offizielle Dokumente und Anwendungen für Unternehmens-OA in Echtzeit zu übertragen, was die Benutzererfahrung erheblich verbessert, und kann auf mobile Geräte ausgeweitet werden.
- Nachrichtenrichtung: Es wird nur eine Nachrichtenrichtung von S2C verwendet. Dies ist das einfachste Anwendungsszenario von MobileIMSDK.
Szenario 4: Erweiterte Version von Enterprise OA
- Anwendungsbeschreibung: Es kann verwendet werden, um die Echtzeitinteraktion verschiedener Nachrichten auf System- und Benutzerebene in Unternehmens-OA zu realisieren und dabei die Instant-Messaging-Technologie voll auszunutzen, um den Wert herkömmlicher OA zu steigern.
- Nachrichtentrend: Es können alle Arten von C2C, C2S und S2C verwendet werden. Dies unterscheidet sich in vielerlei Hinsicht nicht von Chat-APPs. Enterprise OA verfügt jedoch über ein eigenes Benutzerbeziehungsmanagementmodell und eine eigene Logik, die viel einfacher ist als Chat mit vollem Funktionsumfang APPs.
12. Entwicklungshandbuch
- Entwicklungsleitfaden für Android-Clients: Klicken Sie hier, um ihn anzuzeigen.
- Leitfaden zur Entwicklung des iOS-Clients: Klicken Sie hier, um ihn anzusehen;
- Java-Client-Entwicklungshandbuch: Klicken Sie hier, um es anzusehen;
- H5-Client-Entwicklungsleitfaden: Klicken Sie hier, um ihn anzuzeigen.
- WeChat Mini-Programmentwicklungsleitfaden: Klicken Sie hier, um ihn anzuzeigen.
- Uniapp-Entwicklungsleitfaden: Klicken Sie hier, um ihn anzuzeigen.
- Hongmeng Next-Entwicklungsleitfaden: Klicken Sie hier, um ihn anzuzeigen;
- Leitfaden zur serverseitigen Entwicklung: Klicken Sie hier, um ihn anzuzeigen.
13. Autorisierungsmethode
Sie können MobileIMSDK für immer kostenlos nutzen, zum Beispiel für Forschungs-, Studien- und sogar kommerzielle Zwecke. Es ist jedoch verboten, es für kommerzielle Zwecke zu verwenden, die über den Umfang der Lizenz hinausgehen. Bitte respektieren Sie die Rechte an geistigem Eigentum. Ausführlichere Autorisierungsanweisungen finden Sie im Abschnitt „12. Autorisierungsmethoden“ im Einführungsbeitrag der MobileIMSDK-Community.
Ergänzender Hinweis: Wenn Sie weitere technische Unterstützung oder technische Zusammenarbeit benötigen, wenden Sie sich bitte an den Autor, QQ: 413980957
(:point_right: Über den Autor).
14. Kontaktinformationen
- Diskussions-, Lern- und Informationsbereich: :earth_americas: Klicken Sie hier, um teilzunehmen;
- Austauschgruppe für Instant Messaging-Technologie:
185926912
(Für weitere QQ-Gruppen klicken Sie hier, um teilzunehmen); - Bitte senden Sie Fehler und Vorschläge an: :love_letter:
[email protected]
; - Für technische Schulung/Transfer/Zusammenarbeit/Beratung wenden Sie sich bitte an den Autor QQ: :penguin:
413980957
, WeChat: hellojackjiang
(:point_right: Über den Autor).
15. Spenden Sie an den Autor
Ausgezeichnetes Open Source braucht Ihre Unterstützung, um weiterzukommen. Ich danke Ihnen aufrichtig für Ihre Unterstützung und Ihr Verständnis und hoffe, dass Sie von Open Source profitieren können.
- Spendenlink: Klicken Sie hier, um teilzunehmen.
16. Folgen Sie dem Autor
- Über den Autor: Zum Betreten klicken?
- Empfohlene Aufmerksamkeit: BeautyEye Engineering
- Blog-Adresse: Klicken Sie hier, um einzutreten
- Github-Homepage: Klicken Sie hier, um einzutreten
- Mein offizieller Account: :point_down: :point_down:
Anhang: Demo-Screenshots
1. Die Auswirkung der Ausführung der MobileIMSDK-Demo auf Hongmeng Weiter:
编译和运行:
Sehen Sie sich den vollständigen Quellcode der Hongmeng Next Demo an.
2. Laufeffekt der MobileIMSDK-Demo auf Android und iOS:
安装和使用:
Rufen Sie die Demo-Hilfeseite der Android-Version auf, rufen Sie die Demo-Hilfeseite der iOS-Version auf.
3. Laufeffekt der MobileIMSDK-Demo auf der H5-Seite:
4. Die Auswirkung der Ausführung der MobileIMSDK-Demo auf dem WeChat-Applet:
5. Die Auswirkung der Ausführung der MobileIMSDK-Demo auf Uniapp:
6. Ausführungseffekt der MobileIMSDK-Demo unter Windows:
安装和使用:
Rufen Sie die Demo-Hilfeseite der Java-Version auf.
7. Ausführungseffekt der MobileIMSDK-Demo unter Mac OS X:
安装和使用:
Rufen Sie die Demo-Hilfeseite der Java-Version auf.
8. Demo-Laufeffekt der MobileIMSDK-Webversion des Clients:
1)MobileIMSDK-Web Demo在手机端浏览器运行效果:
Sehen Sie sich die Details der MobileIMSDK-Web-Version an.
2)MobileIMSDK-Web Demo在PC端多种主流浏览器的运行效果:
Sehen Sie sich die Details der MobileIMSDK-Web-Version an.
Fall 1: Voll ausgestattetes mobiles IM-Produkt basierend auf MobileIMSDK
关于RainbowChat产品的更多资料请见:
Screenshots aller Funktionen der RainbowChat-Produkte (Real-Life-Video: Android und iOS).
[Besonderer Hinweis]: Da das Github-Bild blockiert wurde, konnte das Bild nicht erfolgreich synchronisiert werden. Bitte überprüfen Sie es anhand der Screenshots aller Funktionen des RainbowChat-Produkts! :point_left: :point_left:
更多清晰运行截图请见:
Screenshots aller Funktionen des RainbowCha-Produkts.
Fall 2: Webbasiertes IM-System basierend auf MobileIMSDK-Web
Hauptschnittstelle des RainbowChat-Web-Produkts:
更多截图和视频:
Klicken Sie hier für weitere Screenshots und klicken Sie hier für weitere Demonstrationsvideos.
Hauptoberfläche des RainbowChat-Web-Produkts (wenn das Chat-Fenster im Vollbildmodus angezeigt wird):
更多截图和视频:
Klicken Sie hier für weitere Screenshots und klicken Sie hier für weitere Demonstrationsvideos.
Hauptschnittstelle des RainbowChat-Web-Produkts (unabhängiger UI-Effekt):
更多截图和视频:
Klicken Sie hier für weitere Screenshots und klicken Sie hier für weitere Demonstrationsvideos.