Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to handle RabbitMQ with mobile apps

I am looking to implement rabbitmq on google compute engine to handle messages on my android and ios messaging app. I have heard that rabbitmq can be quite power hungry, so i am wondering what the best solution to combat this is? Do i use a different protocol like MQTT or so i use something like GCM to handle the connection to and from the apps and let rabbitmq just handle queuing the messages?

like image 947
Al Hennessey Avatar asked Sep 16 '25 09:09

Al Hennessey


1 Answers

You would never want make a direct connection from mobile device to your RabbitMQ server, especially if the app on the device is a consumer. RabbitMQ consumers have to poll RabbitMQ continuously to check if there are messages pending for them. You would want a web-server to handle actual HTTP POST/GET of messages from devices. The webserver will do two things:

  1. Save the message to DB (along with the source and intended destination info)

  2. queue APN/GCM push messages to a RabbitMQ (the broker here) exchange

    you will need to build a daemon to monitor RabbitMQ for these push messages that have been queued. The daemon's sole task would be to connect or maintain a connection to Apple's or Google's push messaging services and notify your apps that they have a message pending. If a device is notified of a pending message, it contacts the webserver to consume the message

like image 73
pbhowmick Avatar answered Sep 19 '25 05:09

pbhowmick