Ich muss einen Server erstellen, der als ein Zwischenpunkt zwischen den Peers dienen würde. Es muss so funktionieren, dass jeder andere Entwickler seine eigene Client-App erstellen, sich mit diesem Server verbinden (wie mit dem Kommunikationskanal) und an einer Konversation teilnehmen kann. Die gesamte Kommunikation sollte in Echtzeit erfolgen und die Nachrichten sollten in der Server-Datenbank persistent sein.Wie wird ein Echtzeit-Chat-Server entworfen, so dass jeder eine Client-App für die Kommunikation über diesen Server erstellen kann?
Der Aufbau einer Chat-App ist ziemlich trivial, aber wenn es darum ging, eine Art "Kommunikationskanal" zu bauen, verwirrte mich das aus irgendeinem Grund.
Könnten Sie mir bitte helfen zu verstehen, wie Sie die Lösung entwerfen und entwerfen und wie Sie richtig darüber denken?
Ich dachte an die Verwendung des folgenden Stapels: Node.js, WebSockets/WebRTC, RethinkDB/MongoDB.
Sollte ich eine spezielle API erstellen, die die Nachrichten empfangen und übertragen würde? Ich kann mir keine andere Lösung als die API vorstellen (oder auch, wie die Apps von Drittanbietern an Gesprächen teilnehmen könnten), aber ich bin mir nicht sicher, wie genau diese API funktionieren sollte (unter Berücksichtigung der Echtzeit-Funktion). Soweit ich weiß, sollte das Datenbankschema dasselbe wie für jede andere Chat-App sein.
Aber was mich am meisten verwirrt, ist dieser Prozess des Empfangens, Emittierens und Persistierens der Daten gleichzeitig.
Ich suche Ratschläge, um zu verstehen, wie die Lösung funktionieren und wie sie zu gestalten ist.