Erstellen Sie eine skalierbare Echtzeit-Kommunikations-App wie WhatsApp mit Messaging-, Video- und Sprachanrufen - Teil 2 Backend

Dies ist Teil 2 der mehrteiligen Serie, in der das Design und die Implementierung einer kommerziell bereitstellbaren WhatsApp-ähnlichen App mit Echtzeit-Messaging, Video- und Sprachkommunikation beschrieben werden, die auf Milliarden von Benutzern skaliert werden kann. Wenn Sie Teil 1 nicht gelesen haben, empfehlen wir Ihnen dringend, ihn vor dem Lesen dieses Teils zu lesen.

In Teil 1 haben wir Android- und iOS-Apps erstellt (wird ab sofort als "bezeichnet" bezeichnet) und verschiedene Funktionen der Anwendung untersucht, z. B. Messaging, Sprach- und Videoanrufe, Gruppenchat usw. Zu diesem Zeitpunkt haben wir dies getan Sie haben das bereits gehostete und konfigurierte Backend verwendet, damit Sie schnell mit den Apps spielen können, ohne sich um das Backend kümmern zu müssen. In diesem Teil wird nun beschrieben, wie Sie das Backend auf Ihren Servern / Ihrer Infrastruktur hosten und die vollständige Kontrolle über Benutzer, Gruppen usw. haben.

Voraussetzungen

Stellen Sie vor dem Einrichten des Backends für die Messenger-Apps sicher, dass die folgenden Server ausgeführt werden.

  • Ein Webserver mit HTTPS- und PHP-Unterstützung. Abhängig vom verwendeten Webserver (Apache / H2O / Lighttpd / Nginx) variiert das Setup. In den folgenden Beispielen wird davon ausgegangen, dass Ihr Hostname example.com lautet und der Backend-Code, den Sie in Kürze herunterladen, über die URL https://example.com/api.php zugänglich ist
  • MySQL Server

Sie müssen sich auch registrieren und API-Schlüssel für die wichtigen Dienste abrufen, die in der App verwendet werden, und dann das Backend so konfigurieren, dass diese Schlüssel wie im nächsten Abschnitt beschrieben verwendet werden.

Verwendete Schlüsseldienste und SDKs

In Teil 1 haben wir kurz die folgenden SDKs und Dienste erwähnt, die in diesem Projekt verwendet werden. Da Sie jetzt das Backend in Ihrer Infrastruktur hosten, müssen Sie sich registrieren und API-Schlüssel für diese Dienste erhalten.

  • Facebook AccountKit SDK zur Telefonüberprüfung. Das Account Kit ist einfach, sehr zuverlässig und bietet eine kostenlose Telefonüberprüfung für bis zu 100.000 Benutzer.
  • SDKs für Google Maps und Google Places für die Geolocation-Integration.
  • Mesibo SDKs für die Echtzeitkommunikation. Genau wie Account Kit und Google Maps ist Mesibo Branchenführer in der Echtzeitkommunikation und bietet leistungsstarke APIs für Messaging, Anrufe usw.

Beginnen wir mit der Registrierung für diese Dienste und holen uns die API-Schlüssel.

Facebook Account Kit

Der erste Bildschirm, den Sie in den Messenger-Apps sehen, ist der Anmeldebildschirm. Auf dem Anmeldebildschirm können Benutzer ihre Telefonnummer eingeben und diese dann überprüfen, indem sie ein OTP über eine SMS oder einen Anruf senden.

Die Telefonüberprüfung ist ein teurer Prozess, da zum Senden der Telefonnummer SMS gesendet oder Anrufe getätigt werden müssen, häufig internationale Nummern. Dank des Facebook Account Kits wird dieser gesamte Prozess jedoch automatisiert und (fast) kostenlos zur Verfügung gestellt. Mit Account Kit können Sie sich schnell registrieren und sich bei Ihrer App anmelden, indem Sie nur deren Telefonnummer oder E-Mail-Adresse verwenden - kein Passwort erforderlich. Es ist zuverlässig, einfach zu bedienen und gibt Ihnen die Wahl, wie Sie sich für Apps anmelden möchten - über das Telefon, die E-Mail oder optional über Ihr Facebook-Konto.

Um das Account Kit verwenden zu können, müssen Sie eine App erstellen und ein Account Kit-Client-Token generieren. Der gesamte Vorgang dauert weniger als 5 Minuten.

  1. Gehe zur Facebook App Seite
  2. Wenn Sie eine vorhandene App haben, klicken Sie darauf. Andernfalls klicken Sie auf, um eine neue App zu erstellen und zu deren Einstellungen zu wechseln.
  3. Auf der linken Seite sehen Sie PRODUKTE. Wenn Sie dort kein Account Kit sehen, klicken Sie auf das Symbol + und fügen Sie 'Account Kit' hinzu.
  4. Jetzt sehen Sie Account Kit unter PRODUKTE. Klicken Sie im Menü Account Kit auf Einstellungen.
  5. Notieren Sie sich die APP-ID und das Account Kit-Client-Token

Geolocation - Google Maps und Google Places

Mit Messenger-Apps können Sie den Standort auswählen und an Ihre Freunde und Familie senden. Messenger-Apps verwenden für diese Funktionalität Google Maps und Google Places SDK. Daher müssen Sie dem Projekt Google Maps und den Google Places-API-Schlüssel hinzufügen, damit es funktioniert.

Anweisungen zum Abrufen und Konfigurieren des API-Schlüssels finden Sie unter

  • Für Android https://developers.google.com/maps/documentation/android-sdk/signup
  • Für iOS https://developers.google.com/maps/documentation/ios-sdk/get-api-key

Mesibo - Echtzeitnachrichten und Anrufe

Mit Messenger-Apps, die Sie im ersten Teil erstellt haben, können Sie Nachrichten in Echtzeit senden und ihren Status in Echtzeit abrufen, z. B. gesendet, zugestellt, gelesen usw. Außerdem können Sie dies auch Tätigen Sie hochwertige Video- und Sprachanrufe zwischen Ihren App-Benutzern. Wir haben Mesibo API verwendet, um diese Funktionen zu erreichen.

Mesibo ist eine erstklassige Echtzeit-Chat-Kommunikationsplattform, die Messaging-, Sprach- und Videofunktionen für verschiedene Industriebereiche ermöglicht. Es ist modular, leicht und einfach zu integrieren und kann Ihre Apps ohne Infrastruktur auf Milliarden Benutzer skalieren.

Um Mesibo verwenden zu können, müssen Sie sich bei der Mesibo-Konsole anmelden und anmelden, um die API-Schlüssel und das App-Token zu erhalten. Sobald Sie angemeldet sind, erstellen Sie eine App und generieren Sie ein App-Token. Der gesamte Vorgang dauert weniger als 5 Minuten.

Notieren Sie sich nach dem Erstellen einer Anwendung das App-Token. Das App-Token sieht folgendermaßen aus:

** cn9cvk6gnm15e7lrjb2k7ggggax5h90n5x7dp4sam6kwitl2hmg4cmwabet4zgdw **

Wir müssen dieses Anwendungstoken in unserem Backend-Code konfigurieren, damit das Backend damit Benutzer und Gruppen auf der Mesibo-Plattform erstellen kann.

Das ist es! Jetzt beginnen wir mit der Konfiguration des Backends.

Laden Sie den Backend-Quellcode von GitHub herunter

Wir haben den Backend-Quellcode auf GitHub hochgeladen, damit Sie schnell loslegen können. Es gibt mehrere Möglichkeiten, Code vom GitHub herunterzuladen.

Klonen Sie das Repository (empfohlen)

Wenn Sie git installiert haben, ist dies ein empfohlener Ansatz, da Sie schnell synchronisieren und mit der neuesten Version auf dem neuesten Stand bleiben können. Dies ist auch eine bevorzugte Methode zum Herunterladen des Codes, wenn Sie einen Beitrag zum Projekt leisten möchten.

Öffnen Sie zum Herunterladen ein Terminal und geben Sie die folgenden Befehle im Stammordner Ihres Webservers ein:

$ git-Klon https://github.com/mesibo/messenger-app-backend

Laden Sie den Code als Zip-Datei herunter

Sie können auch den vollständigen Backend-Quellcode als Zip-Datei herunterladen. Obwohl trivial, besteht der Nachteil dieses Ansatzes darin, dass Sie den vollständigen Quellcode jedes Mal herunterladen müssen, wenn er im Repository aktualisiert wird.

Herunterladen

Entpacken Sie nach Abschluss des Downloads in den Stammordner Ihres Webservers.

Bevor wir das Backend einrichten, müssen wir zunächst eine Datenbank einrichten, die vom Backend verwendet wird.

Einrichten der Datenbank

Sie müssen eine Datenbank einrichten, damit das Backend verschiedene Informationen speichern kann:

  • Telefonnummer und Anmeldetoken des Benutzers
  • Gruppen, Gruppenmitglieder und Gruppenadministratoren
  • Benutzerkontakte für Kontaktsynchronisierungen.
  • Push-Benachrichtigungstoken von Google und Apple

Das Backend verwendet MySQL als Datenbank. Wir werden nicht näher auf die Einrichtung des MySQL-Servers eingehen. Es gibt viele Tutorials im Web, wenn Sie nicht vertraut sind. Nachdem Sie den MySQL-Server eingerichtet haben, erstellen Sie eine Datenbank und die Anmeldeinformationen. Diese Anmeldeinformationen werden vom Backend-Code für den Zugriff auf die Datenbank benötigt.

Der nächste Schritt besteht darin, das Datenbankschema mit der mitgelieferten SQL-Datei mysql-schema.sql zu erstellen. Führen Sie die folgenden Schritte aus, um das Datenbankschema für das Backend zu erstellen.

$ mysql -h -u -p 

Mitteilungen

Die letzten Informationen, die Sie benötigen, sind das Aktivieren der Push-Benachrichtigung für Android und iOS. Sie benötigen Folgendes:

  • Google FCM / GCM-Schlüssel für Android Push-Benachrichtigung.
  • Apple VoIP-Zertifikat und Passphrase.

Informationen zu den oben genannten Anmeldeinformationen finden Sie im Push-Benachrichtigungsdokument von Google FCM und Apple.

Backend konfigurieren

Wir haben jetzt alle Informationen, um das Backend auf Ihren eigenen Servern zu konfigurieren und live zu schalten.

Öffnen Sie config.php im Backend-Code und geben Sie alle oben erhaltenen Informationen ein, nämlich:

  • MySQL-Host, Datenbankname, Benutzername und Passwort
  • Facebook Account Kit AppID und Secret
  • Google Maps-Schlüssel
  • Mesibo-API-Schlüssel und App-Token
  • Google GCM / FCM-Schlüssel
  • Apple VoIP-Zertifikat und Passphrase

Sie müssen außerdem files_path und files_tn_path auf gültige Pfade auf Ihrem Server setzen, in denen das Backend die Profilbilder speichert.

Das ist es! Wir sind jetzt bereit, das Backend zu testen!

Backend testen

Jetzt ist es Zeit, das Backend zu testen. Öffnen Sie https://example.com/api.php in Ihrem Browser. Es sollte ausgegeben werden

{"code": "NOOP", "result": "FAIL"}

Die obige Ausgabe zeigt an, dass das Backend korrekt eingerichtet zu sein scheint. Sie können weiter testen, indem Sie api.php mit einigen Parametern öffnen. Zum Beispiel,

https://example.com/api.php?op=login&aktoken=test&appid=com.mesibo.mesiboapplication

Dies sollte wie folgt ausgegeben werden

{"op": "login", "ts": 1555861088, "error": "BADAKTOKEN", "result": "FAIL"}

Sieht gut aus! Der nächste Schritt besteht darin, die in Teil 1 erstellte Android- und iOS-App mit dem neuen Backend zu aktualisieren.

Konfigurieren Sie Apps für die Verwendung des neuen Backends

Bearbeiten Sie die folgenden Dateien in den Messenger-Apps, die wir in Teil 1 erstellt haben, um das neue Backend zu verwenden.

Android

  • Bearbeiten Sie app / src / main / res / values ​​/ strings.xml und geben Sie Ihre Account Kit-APP-ID und Ihr Client-Token in die Felder FACEBOOK_APP_ID und ACCOUNT_KIT_CLIENT_TOKEN ein.
  • Geben Sie in derselben Datei den Google Map Key in das Feld GOOGLE_MAP_KEY ein.
  • Bearbeiten Sie SampleApi.java und ändern Sie mApiUrl, um die neue Backend-URL wiederzugeben.

iOS

  • Klicken Sie auf Info.plist und geben Sie Ihre APP-ID und Ihr Client-Token in die Felder FacebookAppID und AccountKitClientToken ein. Sie müssen auch das Feld CFBundleURLSchemes bearbeiten, um Ihre Facebook-APP-ID nach dem Präfix fb wiederzugeben.
  • Geben Sie in derselben Datei den Google Map Key in das Feld GoogleMapKey ein.
  • Geben Sie in derselben Datei eine neue Backend-URL in das Feld MessengerApiUrl ein.

Das ist es. Kompilieren Sie beide Apps neu und starten Sie sie!

Sie können jetzt alle neuen Benutzer und Gruppen, die Sie in der Mesibo-Konsole erstellen, zusammen mit Statistiken anzeigen.

Fortsetzung folgt!

In diesem Teil haben Sie ein Backend für Android- und iOS-Apps in Ihrer eigenen Infrastruktur erstellt. In den nächsten Artikeln werden wir beschreiben, wie die gesamte App funktioniert, und sie anpassen.

Bitte folgen Sie uns, um benachrichtigt zu werden, wenn der nächste Teil dieser Reihe veröffentlicht wird.