2014-04-18 11 views
6

Wir haben Rabbitmq Chat in Android implementiert. aber java client von rabbitmq ist macht hungrig. ist rabbitmq gut für android chat ?. Wir haben direkte Austausch-Einzel-Warteschlange für Personen und individuelle Routing-Schlüssel verwendet. Was ist das beste Design-Muster für eins zu eins Chat in Rabbitmq. und auch Möglichkeiten zur Verringerung der Batterie-Nutzungmit Rabbitmq in Android für Chat

Antwort

8

Ich denke nicht, dass RabbitMQ direkt für die Entwicklung eines Chats verwenden ist die bessere Lösung.

Es gibt andere Lösung mehr Licht Bitte lesen Sie post über MQTT.

Eine andere Standardlösung ist die Verwendung XMPP Protokoll (zum Beispiel whatsup verwendet eine benutzerdefinierte XMPP).

Wir haben einige Tests gemacht und wir hatten auch ein Problem mit dem Akkuverbrauch.

BTW, können Sie die Technologien mischen, Mischen RabbitMQ als Back-End und einige andere Server (XMPP, MQTT) als Front-End.

Lesen Sie diese über die MQTT.

MQTT, die von Facebook Messenger

EDIT

würde ich diesen Beitrag hinzufügen MQTT vs. XMPP Which Should I Choose?

EDIT2

Bitte lesen Sie auch this und this auf der offiziellen rabbitmq-gruppe

1

Vielleicht könnten Sie RabbitMQ mit GCM kombinieren, um Strom zu sparen, da GCM vom System ausgelöst wird und keine zusätzliche Verbindung aufrecht erhalten werden muss.

Zum Beispiel:

Die App werden über GCM benachrichtigt, wenn eine neue Veranstaltung kommt Dann wird eine neue Kaninchen-Verbindung hergestellt wird, die Daten erneut und timeouting nach kurzer Zeit abrufen, wenn keine Nachrichten in der kommenden werden. nochmal.

So existiert der eigentliche "Hunger" nur für einen kurzen Moment und nur wenn nötig.

Sie können auch analysieren, welche Benutzer dazu neigen, mehrere Nachrichten schreiben immer dicht hinter einem anderen und variieren das Timeout auf der Grundlage dieser Wert

0

Ich denke, Chat-Anwendungen für Echtzeit-Lieferung von Nachrichten über Netzwerk als Zuverlässigkeit sofort eher sendet . Zuverlässigkeit bedeutet, den Empfang gegen Lieferung zu bestätigen. Aber in Echtzeit stellt die Chat-Anwendung es nicht sicher. RabbitMQ ist ein Message-Broker-Server, der zunächst für Zuverlässigkeit reserviert ist, aber nicht für die Nachrichtenkommunikation in Echtzeit verantwortlich ist. Sie können RabbitMQ für die Kommunikation in Echtzeit verwenden, aber manchmal nicht in Echtzeit.

können Sie STOMP-WebSocket (Für einfache Messaging) verwenden, Firebase (einfache Entwicklung für Instant Messaging), aber die meisten professionellen und verwendbare Protokoll ist XMPP (Extensible Messaging and Presence Protocol) für die Echtzeit-Kommunikation.

Wenn Sie einen Vorschlag oder eine Abfrage gegen diese Antwort haben, lassen Sie mich unten kommentieren.