Viele Organisationen müssen die Mitarbeiterbindung und die Kommunikation am Arbeitsplatz verbessern, insbesondere angesichts des neuen Trends der Remotearbeit.

Eine effektive Kommunikation mit Kunden ist auch für den Geschäftserfolg wichtig. Besonders für Telekommunikationsunternehmen, die zu den Anbietern von 24/7-Support-Services gehören.

Eine gemeinsame Lösung zur Erleichterung der Kommunikation zwischen Mitarbeitern und Kunden besteht darin, eine Echtzeit-Chat-Funktionalität zu entwickeln, mit der Benutzer innerhalb von Sekunden die benötigten Informationen erhalten können. Sie können die Chat-Funktionalität in bestehende Anwendungen einbetten (wie eine m-Commerce-App) oder eine eigenständige App wie Slack für die Kommunikation am Arbeitsplatz erstellen.

Gängige Messaging-Anwendungen verfügen über viele nützliche Funktionen und Erweiterungen, können aber auch teuer sein. So kostet Slack beispielsweise $8 pro aktiven Nutzer. Außerdem erfordern einige Branchen (wie die Finanzbranche) strenge Datenschutzbestimmungen, weshalb Unternehmen Daten auf ihren eigenen Servern speichern müssen. Dies erfordert die Entwicklung einer eigenen Messenger-App oder die Integration von Chatfunktionen in bestehende Anwendungen.

Da wir bereits eigenständige Messaging-Apps sowie zahlreiche Projekte mit integrierter Chat-Funktionalität entwickelt haben, haben wir uns entschlossen, die Geheimnisse hinter Messaging-Apps zu enthüllen. Diese umfassende Anleitung behandelt drei wichtige Themen:

Nützliche Funktionen, die man nicht verpassen darf— Erfahren Sie die wichtigsten Funktionen jeder Messaging-App.
Was steckt hinter der Kulisse? — Erfahren Sie mehr über die technischen Aspekte der Entwicklung von Messaging-Apps.
Schlussbearbeitung — Überlegen Sie, wie Sie Ihre App hervorheben können.

Nützliche Funktionen, die man nicht verpassen darf

Hier sind die wichtigsten Merkmale, die Ihre Bewerbung besonders attraktiv machen werden.

Sofortige Nachrichtenübertragung

Obwohl der Inhalt der Nachrichten variieren kann, liefern alle Textnachrichtensysteme kleine Mengen an Informationen von einem Benutzer zum anderen. Dies ist die Kernfunktion jeder Messenger-App, daher sollten Sie sich jede Einzelheit dessen ansehen, wie diese funktioniert.

  1. Geheime Chats. Implementieren Sie Chats, die nach einer bestimmten Zeitspanne verschwinden, um ein zusätzliches Maß an Privatsphäre zu bieten.
  2. Lieferzustand. Zeigt an, ob ein Chatteilnehmer eine Nachricht gesehen und erhalten hat.
  3. Nachricht versenden. Die meisten modernen Messenger ermöglichen es Nutzern, Nachrichten innerhalb eines bestimmten Zeitraums nach ihrer Absendung zu versenden.
  4. Gruppenchats. Implementieren Sie die Funktion für Gruppenchats, insbesondere wenn Sie Messenger für Communities oder Teams entwickeln. Gruppenchat war eine Kernfunktion von Gesundheitsförderlich, eine medizinische Plattform, an der wir gearbeitet haben, die die Kommunikation in Krankenhäusern verbessert.
  5. Moderation. Die Bereitstellung der Gruppenchat-Funktionalität erfordert außerdem die Bereitstellung moderativer Funktionen. Ermöglichen Sie Administratoren, Nutzer zu sperren oder zu entfernen, Nachrichten zu löschen und andere Nutzer zu Administratoren zu machen. Telegram verfügt außerdem über eine Funktion, mit der Administratoren die Anzahl der Nachrichten eines Nutzers innerhalb einer bestimmten Zeitspanne begrenzen können.

Yalantis verfügt über umfangreiche Erfahrung in der Entwicklung von Echtzeit-Chats. Sehen Sie sich eines unserer medizinischen Chat-Konzepten an. Dribbble.

Wenn es in einer Chatgruppe viele Mitglieder gibt, wird es schwierig, Aktivitäten zu koordinieren und in Kontakt zu bleiben. Dank Umfragen, Entscheidungen treffen und in Gruppen zusammenarbeiten geht das schneller und einfacher.

Sprach- und Video-Nachrichten

Manchmal haben Benutzer keine Zeit, lange Nachrichten zu schreiben. Für zusätzlichen Komfort können Benutzer Video- und Audionachrichten senden. Diese Funktion, die erstmals in WeChat im Jahr 2015, eroberte schnell die Herzen und Denken der chinesischen Nutzer und verbreitete sich schnell auf andere Chat-Software.

Sprach- und Videotelefonie

Je mehr Kommunikationskanäle Sie bereitstellen, desto komfortabler wird Ihre App für die Nutzer. Lassen Sie die Nutzer über kostenlose Sprach- und Videoanrufe kommunizieren. Die Gruppenanrufmöglichkeit erfordert mehr Arbeit, um implementieren zu können, bietet jedoch die Möglichkeit, Videokonferenzen durchzuführen.

Für Telemedizinsoftware ist eine Videofunktion erforderlich. Sie erfahren, wie wir eine qualitativ hochwertige Videokommunikation für Gesundheitsdienstleister und Patienten gewährleisten. Lesen Sie dazu Unser Artikel über die Entwicklung einer ganzheitlichen Telemedizinlösung.

Dateiausweichung

Benutzer möchten Fotos, GIFs, Videos, Dokumente und andere Inhalte sofort teilen können. Implementieren Sie eine Dateifreigabe-Funktionalität, die es Benutzern ermöglicht, Dateien in verschiedenen Formaten zu senden. Sie können eine Integration mit Google Drive und Dropbox mit ihren APIs die Möglichkeit zu bieten, Dateien direkt von diesen Diensten importieren zu können.

Fotobearbeitung

Fotos sind die beliebteste Art von Dateien zum Austausch. Es ist eine gute Idee, den Nutzern die Möglichkeit zu geben, Elemente in Fotos hervorzuheben oder sie einfach in Ihrer Messaging-App zu dekorieren. Die Funktionen zur Bildbearbeitung können stark variieren – von der Bildbearbeitung über das Hinzufügen von Snapchat-ähnlichen Filtern bis hin zur Bildverkleinerung.

Unsere Entwickler haben eine nützliche Funktion namens ForceBlur entwickelt, die empfangene Bilder verwischt und es Benutzern ermöglicht, diese mithilfe von 3D Touch sichtbar zu machen. Dies ist eine perfekte Lösung für Situationen, in denen Benutzer sensible Bilder senden möchten und sicherstellen möchten, dass nur der eigentliche Empfänger sie sieht. ForceBlur ist eine Open-Source-Lösung; den Code finden Sie auf unserer Website. GitHub-Seite.

Wir haben auch entwickelt eine Open-Source-Crop-Bibliothek für Android namens uCrop. Dieses einfach zu integrierende Tool wird von beliebten Apps wie Discord, Mi Fit, Mi Drop und ShareChat verwendet. Der Quellcode ist ebenfalls verfügbar auf der Website von Mi. Yalantis-GitHub-Seite.

Offene Kanäle

Offene Kanäle machen Messaging-Apps zu einem leistungsstarken Marketinginstrument und zu einem Medium, das Unternehmen, Blogger und professionelle Communities nutzen können, um Ankündigungen zu veröffentlichen. Normalerweise können nur Administratoren Beiträge in offenen Kanälen erstellen; Abonnenten können keine neuen Beiträge erstellen, können aber auf bestehende Beiträge klicken und kommentieren. In „Communities in Healthfully“ haben wir offene Kanäle namens „Communities“ entwickelt. In diesen können Ärzte nützliche Informationen für Patienten veröffentlichen, die wiederum diese Beiträge mögen oder kommentieren können.

Eine weitere Frage ist, wie Nutzer öffentliche Kanäle entdecken. Telegram hat keine offizielle Möglichkeit, Kanäle zu durchsuchen. In der Regel teilen Nutzer Links zu Kanälen, zu denen sie abonniert sind, mit anderen. WeChat und Viber ermöglichen es Nutzern, Kanäle über QR-Codes zu entdecken.
Rakuten hat in Viber eine Funktionalität zur Kanalerkennung implementiert, die ähnlich wie bei Tinder funktioniert. In der „Discover“-Funktion von Viber sind verschiedene Kanäle nach Themen kategorisiert. Benutzer können ein Thema auswählen und die Funktion zum Blättern mit einem einfachen Swipe nutzen. Dies verleiht der App eine gewisse Spielcharakteristik.

Integration mit sozialen Netzwerken

Es gibt zwei Hauptgründe, warum man sich mit sozialen Netzwerken vernetzen sollte:

  1. Schnelle Registrierung. Bei der Registrierung können die Nutzer wählen, ob sie ihr Messenger-Profil mit einem Profil in einem sozialen Netzwerk verknüpfen möchten. Dies spart Zeit beim Eingeben von Informationen.
  2. Dateien-Freigabe. Benutzer können Dateien über Social-Media-Konten teilen. In der Folge, einige Boten Erbaut benutzerdefinierte Schaltflächen für Websites, die es Nutzern ermöglichen, Beiträge direkt im Messenger zu teilen.

Was steckt hinter der Kulisse

Nun kommen wir zu dem technischen Teil der Entwicklung von Messaging-Apps.

Kommunikationsprotokolle

Lassen Sie uns von Grund auf erklären: Sie müssen das Kommunikationsprotokoll für Ihre App auswählen. Ein Kommunikationsprotokoll ist eine Reihe von Regeln, die es zwei oder mehr Geräten ermöglichen, Daten auszutauschen. Ihre Wahl des Kommunikationsprotokolls ist besonders wichtig für eine Messaging-App, da es eine nahtlose und mit geringer Latenz verbundene Verbindung zwischen allen Chatteilnehmern gewährleisten soll. Anbieter von Daten-Engineering-Services Sie kann dabei helfen, die Backend-Architektur zu optimieren und sicherzustellen, dass Daten zwischen Clients und Servern effizient fließen, insbesondere bei der Verwaltung großflächiger Kommunikationsnetze.

Hier sind einige der Kommunikationsprotokolle, die Sie in Betracht ziehen könnten:

  • Extensible Messaging Presence Protocol (XMPP)

Dies ist ein altes und ausgeklügeltes XML-Protokoll, das in Zeiten entstanden ist, als ICQ beliebt war. XMPP kann je nach Bedarf Ihres Projekts einfach erweitert oder geändert werden. XMPP wurde für die Echtzeit-Messaging-Funktionalität entwickelt und verfügt über einen sehr effizienten Push-Mechanismus. Es ist sicher, da es die Verwendung von SASL; Darüber hinaus arbeitet das Entwicklungsteam an einer End-to-End-Verschlüsselung, um das Protokoll noch sicherer zu machen. Dank der dezentralen Natur von XMPP kann jeder seine eigene XMPP-Server konzipieren.

Aber XMPP hat auch Nachteile. Entwickler beklagen die umfangreiche Struktur und die Komplexität des Protokolls, und lange Sitzungssignale führen zu langsamen Verbindungsgeschwindigkeiten. Außerdem bietet XMPP standardmäßig keine Bestätigung der Nachrichtenübermittlung, weshalb Entwickler dies manuell einrichten müssen. Unserer Meinung nach ist XMPP überladen und veraltet.

  • Message Queuing Telemetry Transport (MQTT)

Sie können das MQTT-Protokoll für den Datenaustausch zwischen Clients und Servern in Betracht ziehen. Dieses Publish-Subscribe-Protokoll wurde für die Erfassung von Telemetriedaten entwickelt. Heutzutage verbindet MQTT normalerweise verschiedene IoT-Geräte. Es funktioniert über TCP/IP und unterstützt sichere Verbindungen über TLS. Eine Sache, die Ihre Backend-Entwicklung erschweren könnte, sind die Message Brokers für MQTT.

Standardmäßig verfügen MQTT-Message-Brokers über eine einfache Liste an Funktionen: Authentifizierung, Autorisierung und Veröffentlichung/Abonnieren in einer Warteschlange. Um Funktionen wie Gruppenchats und Statusmeldungen zu implementieren, müssen Sie Plugins entwickeln oder benutzerdefinierte Dienste entwickeln, die Nachrichten empfangen, verarbeiten und diese erst dann an eine andere Warteschlange weiterleiten und an den Benutzer übergeben. Das sieht etwas kompliziert aus und ist aus architektonischer und Performanceperspektive nicht optimal.

  • WebSockets

Dieses moderne und sichere Protokoll ermöglicht den kontinuierlichen bidirektionalen Datenaustausch zwischen Clients und Servern. Wenn eine Verbindung hergestellt wird, tauschen der Server und der Client Daten aus, ohne dass Anfragen von der Clientseite erforderlich sind. Die Daten werden dem Client sofort nach ihrer Ankunft am Server gesendet. Da mehrere Benutzer über eine einzige Verbindung verbunden sind, verbrauchen WebSockets weniger Datenverkehr und liefern Nachrichten schneller als die anderen oben genannten Protokolle. Wenn Sie mehr über WebSockets erfahren möchten, empfehlen wir Ihnen Lesen Sie unseren Artikel Über die Verwendung von WebSockets in Go.

Programmiersprache

Ihr Kommunikationsprotokoll ist nur eine der Überlegungen. Sie müssen außerdem eine Programmiersprache für die Serverseite (oder den Back-End) Ihres Messengers auswählen. Ihre Back-End-Lösung muss zuverlässig, skalierbar und Millionen von Verbindungen pro Knoten unterstützen können. Daher ist die Konkurrentenz bereits von Anfang an entscheidend. Golang und Erlang haben sich als zuverlässige Lösungen für die Entwicklung von Messaging-Applikationen bewährt, daher vergleichen wir diese beiden Optionen.

  • Erlang. Es ist keine Geheimnis, dass die Backend-Software von WhatsApp, dem beliebtesten Messenger der Welt, mit Erlang geschrieben wurde. Warum Erlang? Weil Erlang in den 1990er Jahren für Telekommunikationsgeräte geschrieben wurde und konzeptionell die Konkurrentenfähigkeit unterstützt. Es ist funktional, dynamisch typisiert und führt während der Laufzeit die Garbage-Collection durch. Sie können Erlang als Sprache für die Backend-Software Ihrer Messaging-App auswählen, aber es gibt ein Problem: Erlang ist nicht so beliebt. Die Suche nach erfahrenen Erlang-Entwicklern ist recht schwierig und sie verlangen hohe Stundensatzgebühren.
  • Golang (Go). Wie wäre es mit der Verwendung von Go für die Backend-Software? Es ist eine einfache, statisch typisierte und blitzschnelle Programmiersprache, die in native Code kompiliert wird. Erstellt von Google im Jahr 2009, unterstützt Go auch Konkurrentenfähigkeit von Haus aus und verfügt über einen Garbage Collector. Die Konkurrentenmodelle von Erlang und Go wurden von denen von CSP, oder die Kommunikation sequenzieller Prozesse – Go verfügt über eine große Community und eine Vielzahl an Open-Source-Projekten. Entwickler mit Erfahrung in Go zu finden ist nicht so schwierig wie Erlang-Entwickler zu finden.

Und wie steht es um die Programmiersprachen auf der Clientseite? Laut aktuellen Trends in der mobilen Entwicklung sind Swift und Kotlin die führenden Lösungen für die Entwicklung von iOS und Android, wobei sie die traditionellen Sprachen Objective-C und Java ablösen.

Speichern der Chat-Historie

Es gibt zwei Ansätze zur Speicherung der Chat-Historie: In der Cloud (wie Telegram und Slack), und auf den Smartphones der Nutzer (wie Viber). Die Speicherung der Daten in der Cloud bedeutet, dass Nachrichten verfügbar sind, wenn ein Nutzer auf ein anderes Gerät wechselt. Aber das erfordert zusätzliche Kosten von Ihrer Seite. Die Speicherung aller Daten auf den Geräten der Nutzer ist für die Nutzer weniger komfortabel, erfordert jedoch keine Investitionen in die Cloud-Speicherung. Viber ermöglicht es den Nutzern, ihre Chat-Historie in Google Drive zu sichern. Benutzer können die automatische Sicherung aktivieren, aber diese Funktion speichert nur Textnachrichten.

Details der Implementierung

1. Die gesamte App-Architektur

Welche Komponenten müssen wir für eine Messaging-App entwickeln?

Eine API ist der Kern einer Echtzeit-Messaging-App. Sie ist verantwortlich für die Einrichtung einer Verbindung zwischen einem Client und einem Server zur Authentifizierung, der Verarbeitung von Ereignissen, der Nachrichtenvermittlung und anderen Zwecken.

  • Medienservice. Jeder Messenger muss Bilder, Videos und andere Daten speichern, verarbeiten und zurücksenden. Genau das ist die Aufgabe eines Mediendienstes.
  • Eine Schlange ist für die Weiterleitung von Nachrichten zwischen API-Noden verantwortlich. Eine Warteschlange kann jeder Broker mit einem verteilten Nachrichtenmuster, Clustering-Unterstützung und hoher Durchsatz sein.
  • Dateispeicherung Es kann sich um eine klassische Objektspeicherdienstleistung mit Unterstützung für private Bucket oder um eine CDN-Lösung für eine schnelle Inhaltsbereitstellung handeln.
  • Ein Datenbankcluster ist für die Speicherung von Nutzerprofilen, -einstellungen, -chats, -ereignissen usw. verantwortlich. Es muss vertikal und horizontal skalieren und die Replikation und Sicherung unterstützen.
  • Ein Schlüssel-Wert-Cache-Cluster ist für die Speicherung temporärer Benutzerdaten, Zählern, Token usw. erforderlich. Es muss skalierbar sein, daher empfehlen wir für diesen Teil der Architektur die Verwendung von Redis Cluster. Es unterstützt verschiedene Datentypen, Sharding und Clustering.
  • Eine Zeitreihendatenbank ist für die Speicherung von statistischen Daten wie Benutzerregistrierungen/Anmeldungen oder Ereignisse bei der Nachrichtenübermittlung erforderlich. InfluxDB ist unsere Wahl für diese Aufgabe. Sie können den gesamten Influx-Stack für die Erfassung, Speicherung und Visualisierung von Daten verwenden.
  • Eine Benachrichtigungsdienstleistung ist für den Versand von Push-Benachrichtigungen an mobile Geräte und die Übermittlung von SMS-Codes für die Zwei-Faktor-Authentifizierung verantwortlich.
  • Ein SMS-Service Es handelt sich um einen externen Dienst, der SMS-Nachrichten an die Telefonnummern der Nutzer sendet. Die wichtigsten Kriterien sind eine Service-Level-Agreement (SLA) für die SMS-Versendung und die Bereitstellung der Dienste in Ländern, in denen Sie Ihre Messaging-App starten möchten. Gute Optionen sind AWS SNS und Twilio.
  • Ein Push-Benachrichtigungsservice ist ein externer Dienst, der Push-Benachrichtigungen an die mobile Plattform liefert, die Sie unterstützen möchten. Wir bevorzugen die Verwendung von Google Firebase für Android- und iOS-Apps, da dies kostenlos und schnell ist.

2. Nachrichtenfluss

Lassen Sie uns sehen, wie Nachrichten in einer Gruppe mit drei Teilnehmern verteilt werden (siehe Schema unten):

  1. Eine Nachricht wird von einem Absender an API-Node 1 über den Load Balancer (einem Gerät, das den Traffic über mehrere Server verteilt) gesendet.
  2. API Node 1 verarbeitet die Nachricht, erhält die Liste der Chatteilnehmer aus der Datenbank, erstellt für jeden Teilnehmer Nachrichten und übermittelt diese an die Warteschlange.
  3. Die Queue liefert die Nachrichten an jeden API-Node unter dem Load Balancer, mit Ausnahme von Node 1.
  4. API Node 2 überspringt die Meldung für den Web-Client, liefert sie jedoch für den iOS-Client.
  5. Die API-Anwendung Node 3 überspringt die Meldung für den iOS-Client, liefert sie jedoch an den Web-Client weiter.

Es sieht so aus, als hätten wir einige Aufwände, wenn ein API-Node Nachrichten von jedem Chatteilnehmer empfängt und diese dann nur an angeschlossene Clients weiterleitet. Für diese Lösung müssen wir jedoch keine Client-Verbindungslage global speichern und keine globale Schlüssel-Wert-Map von angeschlossenen Clients und Nodes verwenden. Unsere Lösung eignet sich für mobile Clients mit instabilen Verbindungen und häufigen Wiederverbindungsvorgängen.

3. Architekturformen

Wenn Sie sicherstellen möchten, dass Ihre App erfolgreich mit Marktführern konkurrieren kann, muss sie in instabilen Netzwerkumgebungen so schnell wie möglich Nachrichten liefern und die Synchronisierung von Nachrichten zwischen mehreren Geräten unterstützen. Dies erfordert strenge Anforderungen an die Server-Softwarearchitektur. Sie müssen das richtige Architekturmuster wählen, um zukünftig nicht erneut Dienste neu zu schreiben.

Die Event-Sourcing Das architektonische Muster eignet sich ideal für eine Messaging-App. Im Gegensatz zu anderen Mustern speichert das Event Sourcing-Muster stattdessen nicht den aktuellen Dateneinsatzstatus in einem Domänenobjekt, sondern erfasst eine vollständige Reihe von Aktionen (Ereignissen), die an diesen Daten durchgeführt werden.
Event Sourcing speichert den Zustand einer Entität, also eines Chats, als eine Sequenz von Ereignissen. Eine App speichert die Ereignisse in einem Ereignisprotokoll, das eine Datenbank der Ereignisse ist. Dieses Protokoll verfügt über eine API zur Hinzufügung und Abrufung von Ereignissen einer Entität.

Einige Benutzer können eine große Anzahl von Ereignissen verzeichnen. Um die App-Laufzeit zu optimieren, kann eine API regelmäßig einen Snapshot des Zustands einer Entität speichern. Um den aktuellen Zustand wiederherzustellen, sucht die Anwendung nach dem neuesten Snapshot sowie nach Ereignissen, die seit diesem Snapshot stattgefunden haben.

Wenn ein Benutzer eine mobile Anwendung von Grund auf auf einem neuen Gerät installiert und sich in ein bestehendes Konto einloggt, erhält er/sie den neuesten Snapshot und die Ereignisse, die seit dem Datum dieses Snapshots stattgefunden haben. Nach dieser ersten Synchronisierung rekonstruiert die mobile Anwendung den aktuellen Zustand, indem sie die Ereignisse einzeln in chronologischer Reihenfolge auf den Snapshot anwenden.

Wenn ein Benutzer nach einer gewissen Inaktivität eine mobile Anwendung startet, erhält er Ereignisse von dem letzten Zeitstempel bis heute; die App rekonstruiert den Status anhand der einzelnen Ereignisse in chronologischer Reihenfolge.

4. Audio- und Videoanrufe

WebRTC (Web Real-Time Communication) ist eine gängige Lösung für Audio- und Videoanrufe. In einfacher Sprache ist WebRTC eine Sammlung von APIs und Protokollen, die Echtzeit-Peer-to-Peer-Verbindungen für den Streaming von Audio und Video ermöglichen.

WebRTC ist komplett kostenlos und Open-Source, sodass es von jedem problemlos genutzt werden kann. Dank der Offenheit des Projekts verfügt WebRTC zudem über ein dynamisches Ökosystem. Außerdem ist WebRTC in den meisten modernen Browsern verfügbar, portabel und kann für mobile Apps eingesetzt werden.

Es gibt drei Haupt-APIs für WebRTC, die zusammen eine reibungslose Übertragung hochwertiger Audio- und Video-Daten ermöglichen:

  • Medienströme ist für die Bereitstellung des Zugangs zu der Kamera, dem Bildschirm und dem Mikrofon eines Geräts verantwortlich.
  • PeerConnection Dies ist wahrscheinlich der wichtigste Teil von WebRTC und zugleich der schwierigste zu implementieren. Es ist dafür verantwortlich, Verbindungen zwischen Nutzern herzustellen. PeerConnection generiert ein Netzwerk zum Austausch von Nachrichten und verarbeitet eingehende Anfragen, implementiert ICE Es verbindet Medienkanäle, kodiert und dekodiert Audio- und Videodaten, sendet und empfängt Medien über das Netzwerk und übernimmt alle lokalen und Netzwerkprobleme.
  • DataChannel Verwendet zur Übermittlung willkürlicher Informationen zwischen Geräten. Sie können die Datenkanäle so konfigurieren, dass sie zuverlässig oder unzuverlässig sind, sowie ordentlich oder unordentlich die Nachrichten übermitteln.

Der Prozess der Entdeckung und Verhandlung von WebRTC-Peern wird Signalisierung genannt. Mit Hilfe eines Signalisierungsserver können zwei Geräte sich gegenseitig entdecken und Verhandlungsmeldinger austauschen. WebRTC legt keine Anforderungen an die Signalisierung fest, daher sollten Sie dafür WebSockets verwenden.
Um das Einbetten und die Integration von Audio- und Videoanrufen mit WebRTC einfach zu gestalten, können Sie die folgenden SDKs verwenden:

  • MirrorFly ist ein benutzerfreundliches WebRTC-basierte Tool, das Entwicklern hilft, Live-Übertragung, Videokonferenzen und Videotelefonate zu integrieren. Es bietet eine geringe Latenz, erweiterte H.264-Datenverschlüsselung und die Möglichkeit, HD-Videos zu streamen.
  • Sinch ist eine leichte Cross-Plattform-SDK-Bibliothek für Videokommunikation, die umfangreiche und verständliche Dokumentation bietet und es Entwicklern ermöglicht, Medienströme zu steuern.
  • Die WebRTC-Framework PubNub unterstützt eine breite Palette von WebRTC-Funktionen und gilt als äußerst zuverlässige Lösung mit Enterprise-Sicherheitsfunktionen.
  • Vonage ist eine WebRTC-Plattform, die die Integration von Sprach- und Videoanrufen, Bildschirmsharing und Video-Streaming in mobile und Web-Apps vereinfacht. Wir haben dieses Tool für die Entwicklung einer Messaging-App eingesetzt und können die Zuverlässigkeit, die Einfachheit der Integration und die Benutzerfreundlichkeit bestätigen.

5. Bearbeitung von Medieninhalten (Bild, Audio und Video) 

Alle Fotos, Audiodateien und Video-Nachrichten sollten auf irgendeine Weise am Backend Ihrer App verarbeitet werden. Sie müssen Bildvorschau-Vorlagen erstellen, Audio- und Video-Dateien komprimieren usw. Teile dieser Arbeit können auf der Clientseite durchgeführt werden, aber manchmal müssen Sie sie auf der Serverseite laden.

Wenn Sie eine cloudunabhängige Lösung entwickeln, haben Sie keine Alternativen außer, Ihre eigene skalierbare Medienplattform mit hoher Durchsatzleistung zu schreiben und sie während der Entwicklung zu optimieren.

6. Sicherheit

Führen Sie diese Sicherheitsbest Practices und diese Technologien während der Entwicklung und Implementierung durch:

  1. Verwenden Sie TLS/SSL-Protokolle für jede Art von Client-Server-Verbindung.
  2. Verknüpfen Sie das Profil eines Benutzers mit einer eindeutigen Telefonnummer und implementieren Sie die Zwei-Faktor-Authentifizierung über SMS.
  3. Pin-Zertifikate für mobile Geräte.
  4. Verwenden Sie End-to-End-Verschlüsselung für die Nachrichteninhalte (Text, Audio, Video und Anrufe) mithilfe asymmetrischer Kryptographiealgorithmen. Erstellen Sie Schlüsselpaare für jeden Chat und speichern Sie diese nicht in der Datenbank.
  5. Verwenden Sie die Private File Object-Speicherlösung für jeden Chat mit Authentifizierung und Autorisierung, sodass nur die aktiven Chatteilnehmer Mediendateien aus dem Chat-Bucket herunterladen können.
  6. Verwenden Sie ein privates Netzwerk für die Bereitstellung von Infrastruktur.
  7. Sichern Sie alles ab.
  8. Verwendung Ratebegrenzung und Drosselung.
  9. Einhaltung DSGVO Anforderungen.
  10. Verwenden Sie keine sensiblen Benutzerdaten in der Datenbank. Wenn Sie sensible Benutzerdaten speichern müssen, verschlüsseln Sie diese oder verwenden Sie Hashalgorithmen. Alle Zeilen müssen mit einem einzigartigen Salz verschlüsselt werden, um eine Dekodierung mithilfe von Lookup- und Rainbow-Tabellen zu vermeiden.
  11. Verwenden Sie mindestens einen SHA-512-Hashing-Algorithmus.

Sicherheitsmaßnahmen, die speziell für medizinische Chat-Apps gelten

Kommunikation ist in der Medizin von entscheidender Bedeutung. Neben den zuvor erwähnten Überlegungen müssen medizinische Lösungen jedoch aufgrund sensibler Informationen über das Wohlbefinden der Patienten, die oft Ziel von Hackern sind, besonders auf Sicherheitsaspekte achten. Während sie mit ihren Ärzten persönliche Daten austauschen, möchten die Patienten sicher sein, dass diese Informationen nicht gestohlen und zu böswilligen Zwecken genutzt werden.

Halten Sie die folgenden Faktoren und Datenschutzpraktiken im Hinterkopf, wenn Sie eine zuverlässige App entwickeln, die die wertvollen Daten Ihrer Nutzer schützt.

  1. Einhaltung HIPAA-Anforderungen. Die Einhaltung der HIPAA-Vorschriften bedeutet, dass eine App die Sicherheits- und Datenschutzstandards der HIPAA-Richtlinie erfüllt. Die Schwierigkeit besteht in der Regel nicht darin, zu ermitteln, wie man diese Richtlinien einhält, sondern vielmehr darin, zu bestimmen, in welchen Fällen die HIPAA-Datenschutz- und Sicherheitsregeln gelten. Wir empfehlen Ihnen, zwischen Google Cloud Drive, Microsoft One Drive, Amazon und Box für die Cloud-Speicherung zu wählen, da diese Dienste auf die Einhaltung der HIPAA-Richtlinie ausgerichtet sind.
  2. Vergeben Sie Benutzerberechtigungen. Für eine communitybasierte App, die sensible Daten verarbeitet, ist es entscheidend, je nach Benutzertyp unterschiedliche Berechtigungen zu vergeben. Diese Berechtigungen legen die jeweiligen Fähigkeiten des Benutzers im System und den Zugriffsbereich der Daten fest.
  3. Stellen Sie die Ablaufdauer der Nachrichten und das Abmelden fest. Eine end-to-end verschlüsselte Messaging-App speichert keinen Benutzerdaten, wenn das Telefon kompromittiert oder gestohlen wird und dessen Inhalt zugänglich gemacht werden kann. Sie sollten unbedingt eine Ablaufzeit für In-App-Konversationen festlegen, um sicherzustellen, dass ältere Nachrichten gelöscht und verschwinden.

Eine Abmeldungfunktion unterliegt ebenfalls den HIPAA-Standards. Eine HIPAA-konforme App muss einen Benutzer nach einem definierten Intervall automatisch abmelden. Dadurch wird sichergestellt, dass niemand außer dem autorisierten Benutzer eine Sitzung nutzen kann.

In unserem Ausführliche Anleitung Informationen zu den Datensicherungsmechanismen finden Sie hier.

Sie benötigen einen Software-Entwicklungspartner, der Ihnen bei der Entwicklung einer Echtzeit-Messaging-Lösung helfen kann? Wir können helfen.

Schlussbearbeitung

Um im Markt erfolgreich zu sein, sollten Sie die Funktionalität Ihrer App ständig verbessern. Wir haben eine Liste an erweiterten Funktionen zusammengestellt, die Ihre App zu einem robusten Wettbewerber für Giganten wie WhatsApp und WeChat machen werden.

Chatbots

Chatbots sind kleine Anwendungen, die innerhalb einer Messaging-App funktionieren. Bots können die Funktionalität Ihrer App erweitern und sie zu einer universellen Lösung machen, sodass Benutzer alles tun können – von der Suche nach YouTube-Videos bis hin zum Überweisen von Geld an andere. Chatbots werden von Drittanbietern entwickelt und bieten die Möglichkeit, mit ihren Services zu integrieren.
Sie sollten sorgfältig prüfen, was die Entwickler von Drittanbieter-Chatbot-Systemen erstellen. Die meisten großen Messaging-App-Entwickler verfassen Richtlinien für die Erstellung von Chatbots und haben ein Team von Entwicklern, das die von Drittanbietern entwickelten Chatbots überprüft.

Gemeinschaften

Soziale Netzwerke wie Facebook bieten ein hervorragendes Beispiel für digitale Gemeinschaften, in denen jeder Nutzer sich mit allen Menschen umgeben kann, die ihm zusagen.
Es gibt immer einen einzelnen Personenkreis – den Ersteller/Administrator der Community –, der entscheidet, wer sich dem Netzwerk anschließen darf, und die Anfragen an potenzielle Mitglieder sendet. Jeder Mitglied kann je nach den Berechtigungen, die der Administrator festlegt, unterschiedliche Zugriffsberechtigungen auf die innerhalb des Netzwerks geteilten Informationen haben.

Futter

Analog zu den sozialen Medien können auch in den Community-Apps ein Feed – also der Hauptbildschirm der App – vorhanden sein, auf dem die meisten Diskussionen stattfinden.
Benutzer von community-basierten Apps sollten auch in der Lage sein, private Chats mit einzelnen Mitgliedern der Gruppe zu führen.

Mobile Zahlungen

Geld in Messaging-Apps wird in der Regel über Chatbots übertragen. Doch WeChat, das als die chinesische Lösung für alles gilt, geht noch einen Schritt weiter und hat in WeChat Pay In-App-Zahlungen implementiert.
Es gibt mehrere Möglichkeiten, per der WeChat-App zu bezahlen:

  • QR-Code generieren. Diese Funktion funktioniert auf zwei Arten. Mit der ersten Methode generiert ein Benutzer einen QR-Code und zeigt ihn dem Händler an, um zu bezahlen. Mit der zweiten Methode erstellt der Händler verschiedene QR-Codes für verschiedene Waren, und die Nutzer scannen diese QR-Codes, um zu bezahlen.
  • In-App-Zahlungen. Dafür sollten Händler die WeChat Pay SDK integrieren. Wenn Nutzer in Apps außerhalb von WeChat bezahlen, müssen sie WeChat autorisieren, die Zahlung zu verarbeiten. Nachdem die Transaktion abgeschlossen ist, wird die Seite zur ursprünglichen App weitergeleitet.
  • Webbasierte Zahlungen. Händler können über offizielle Konten Produktnachrichten an ihre Follower senden. Mit der Aktivierung von WeChat Pay können die Follower Produkte auf der Einkaufsseite des Händlers schnell kaufen.

WeChat Pay ist eine E-Wallet. Um die gleiche Zahlungsfunktion in Ihre Messaging-App zu integrieren, sollten Sie eine Zahlungsplattform einbinden. Weitere Informationen dazu finden Sie hier., lesen Sie unseren umfassenden Artikel Über die Integration von mobilen App-Zahlungsgateways.

Streaming

Von Snapchat und Instagram aus haben Stories und Streams stetig Messaging-Apps übernommen. Die Streaming-Funktionalität ermöglicht es Nutzern, Daten gleichzeitig mit mehreren Nutzern zu teilen. WhatsApp Status beispielsweise ermöglicht es Nutzern, Videos, GIFs und Fotos zu posten, die nach 24 Stunden verschwinden.

Sprachverarbeitung

Die Verarbeitung natürlicher Sprache ermöglicht es Anwendungen, Sprache zu analysieren, zu transformieren oder gesprochene Sprache in der Art und Weise zu generieren, wie sie von Menschen gesprochen wird. NLP kommt in verschiedenen Formen vor, von der Erkennung von Text in Fotos bis hin zur Erstellung von dialogähnlichen Texten.

Messaging-Apps verfügen in der Regel über Funktionen zur Sprachzu-Text-Übersetzung und zur Textgenerierung. Um diese Funktionen in Ihre App einzubinden, benötigen Sie glücklicherweise keine Datenwissenschaftler-Teams. Viele Tech-Giganten bieten APIs an, mit denen Sie Ihre Anwendung mit KI-gestützten Funktionen ausstatten können. Lassen Sie uns uns die beliebtesten Lösungen ansehen:

a) Speech-to-Text-API von Google Cloud. Veröffentlicht im Jahr 2018 bietet Googles API eine genaue Funktion von Sprache in Text. Die Genauigkeit wird erreicht, indem mehrere Machine-Learning-Modelle für verschiedene Anwendungsfälle verwendet werden (Anwendungsfälle der maschinellen Lerntechniken). Die API von Google erkennt 120 Sprachen und Dialekte und kann Sprachen automatisch erkennen. Außerdem bietet es verbesserte Zeichensetzungsmöglichkeiten für klarere Transkripte. Allerdings hat dieses Tool Einschränkungen hinsichtlich des benutzerdefinierten Wortschatz-Builders und funktioniert nicht offline. Außerdem sollten Sie bereit sein, eine Gebühr zu zahlen. Es gibt eine komplexes Formel zur Berechnung der Kosten.

b) Kognitive Dienste von Microsoft Azure. Die Lösung von Microsoft bietet eine Reihe von KI-gestützten Funktionen, darunter Inhaltsbewertung, Textübersetzung, Computervision und Gesichtserkennung.
Was die Sprach-zu-Text-Funktionalität betrifft, bietet es Echtzeit-Textverarbeitung und -übersetzung, Spracherkennung und ein benutzerfreundlicheres Wortschatzangebot im Vergleich zur Google-API. Cognitive Services erfordert außerdem eine Internetverbindung und hat feste Preise pro 1.000 Transaktionen.

c) Sprachrahmenwerk von Apple. Dieses Tool wird verwendet, um iOS-Anwendungen zu ermöglichen, die Stimme eines Benutzers zu erfassen und diese an die Server von Apple zu senden, um sie zu verarbeiten. Es ist also klar, dass es ohne eine Internetverbindung nicht funktionieren wird.
Das Framework ist kostenlos, aber wenn Sie es verwenden, müssen Sie die Erlaubnis des Nutzers einholen, um seine Daten auf den Servern von Apple zu verarbeiten. Um allen Anwendungen weiterhin zur Verfügung zu stehen, begrenzt Apple die Anzahl der Erkennungen, die pro Tag von einzelnen Geräten durchgeführt werden können, und jede App kann weltweit eingeschränkt werden, basierend auf der Anzahl der Anfragen, die sie pro Tag veranlasst.

d) Watson-Sprachausgabe in Text von IBM. Diese Lösung ermöglicht die Verarbeitung großer Datenmengen. Sie können Watson Speech to Text einfach in Ihre App integrieren, indem Sie mobile SDKs für Android und iOS oder eine REST-API verwenden. Watson funktioniert in einer begrenzten Anzahl von Regionen und bietet drei Planvarianten. Der Preis hängt hauptsächlich von der Anzahl der API-Verwendung pro Monat und den gewünschten Funktionen ab.

Lesen Sie auch: Softwareanforderungen für Ihre Messaging-Dienste schreiben

Wie Sie sehen können, erfordert die Entwicklung und die weitere Einführung einer Messaging-App eine gründliche Prüfung technischer Aspekte und der Anforderungen der Nutzer. Mit Chatbots und einer Vielzahl weiterer Funktionen können diese Apps für die Nutzer zu einer Zauberwaffe werden. Aber eine Vielzahl an Funktionen bedeutet jedoch auch komplexe Projekte.

Nachdem wir bereits zahlreiche Projekte mit Chat-Funktionalität realisiert haben, haben wir uns dazu entschlossen, eine eigene, sofort einsatzbereite Lösung zu entwickeln, die die Entwicklung von Messaging-Apps erheblich vereinfacht. Wenn Sie mehr darüber erfahren möchten, schreiben Sie uns eine E-Mail. Wir stehen Ihnen auch gerne zur Verfügung, falls Sie Fragen zu der Erstellung eines Messengers haben.

Wollen Sie eine Messaging-App entwickeln?

Wir helfen Ihnen gerne weiter

Erfahren Sie mehr über unsere Expertise

Über den Autor

Foto von Nataliia Horbei

Inhaltmanager

Mit mehr als sechs Jahren Erfahrung in der Softwareentwicklung konzentriert sich Nataliia auf die Erstellung eingehender Inhalte zu Themen wie Web- und Mobile-Entwicklung, IoT, KI/ML und Cloud-Lösungen. Ihre Arbeit umfasst mehrere Branchen, von der Gesundheitsversorgung und Fintech über Logistik und Immobilienwirtschaft bis hin zu Finanzdienstleistungen.