2016-06-17 7 views
0

Ich entwickle eine One-to-One-Chat-App. Das Problem ist, wie sollte ich alle Clients und Server synchronisieren? Es kann mehrere Fälle geben, in denen die Nachricht nicht vom Client gesendet wird oder vom Client nicht empfangen wird.Android: Entwicklung einer Chat-App

Momentan benutze ich einen Pub Sub Service und GCM. Wann immer Benutzer die App verwenden, abonniere ich einen eindeutigen Kanal, um Nachrichten zu empfangen und api zum Senden von Nachrichten zu verwenden. Durch pubsub unterhalte ich den Benutzer Online-Status.

Immer wenn App in den Hintergrund tritt, trennt pubsub die Verbindung und der Benutzer geht offline. In diesem Fall wird GCM verwendet, um Nachrichten an den Client zu übermitteln.

Dieses System funktioniert gut. Aber selten gibt es Nachrichten, die nicht an den Client geliefert werden.

Kann dies verbessert werden, um die Zustellung von Nachrichten zu gewährleisten?

+1

Warum probierst du Firebase nicht aus? Sehen Sie sich dieses https://www.youtube.com/watch?v=xAsvwy1-oxE an – shiladitya

+0

Ich stimme @shiladitya auf diesem zu. Sie können die Echtzeit-Datenbankfunktionen von Firebase nutzen. –

Antwort

1

Here ist ein gutes Tutorial. mit clientseitigen und serverseitigen Codes ...

0

Haben Sie bereits eine Lösung gefunden? Wenn nicht, könnten Sie deepstream verwenden, um es zu lösen. Es ist ein offener Echtzeitserver, der Websockets verwendet, und eine der Funktionen, die es anbietet, ist PubSub. Hier ist eine example sie bieten, die JS verwendet, aber Sie können es auch in Android leicht implementieren, indem Sie ihren Android-Client verwenden.