june 2014 - building rabbit mq based chat on android
DESCRIPTION
Prasun from barter.li talking about how they implemented RabbitMQ chat in their appTRANSCRIPT
![Page 1: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/1.jpg)
![Page 2: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/2.jpg)
Building RabbitMQ based Chat on
barter.li Android App
![Page 3: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/3.jpg)
Why RabbitMQ for Chat
● Fast, reliable, guaranteed & scalable chat
● Mobile, Web compatibility
● Messages, pics, audio, video transfer etc.
● No dependence on Google services
![Page 4: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/4.jpg)
RabbitMQ
● Uses AMPQ protocol
● Built with Erlang
Founded by Rabbit Technologies in year 2007
![Page 5: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/5.jpg)
Why AMPQ
● IBM MQSeries
● Microsoft Message Queue
● Java Message Service
![Page 6: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/6.jpg)
Other Vendors
● Apache qpid
● Apache apollo
● Windows Azure Service Bus
![Page 7: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/7.jpg)
AMPQ
● Started by JPMorgan Chase with iMatix Corporation and
evolved to develop an open standard
● Allows different MQ vendors communicate with each other
![Page 8: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/8.jpg)
Why Erlang?
● Developed by Ericsson
● Good at distributed computing
● Used by Facebook, What’s App
● Open Telecom Platform
![Page 9: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/9.jpg)
Important Things
● Queues
● Exchanges
● Bindings
![Page 10: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/10.jpg)
Exchanges
● Topic
● Fanout
● Direct
● Headers
![Page 11: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/11.jpg)
Android and Rabbitmq
● The java client library is not mobile optimized
● Unreliable tcp (Transmission Control Protocol) connection
● Heavy weight
![Page 12: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/12.jpg)
Issues Faced
● Need to handle frequent tcp connection failure
● Different device login and round robin issues
● Maybe not meant for chat
![Page 13: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/13.jpg)
Solution
● Heartbeat for tcp issues
● Unique queue names for different devices with same id.
● Fanout messaging
![Page 14: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/14.jpg)
Alternatives
● MQTT: Message Queuing Telemetry Transport
● Faye: Simple pub/sub messaging
![Page 15: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/15.jpg)
References
● https://groups.google.com/forum/#!forum/ruby-amqp
● http://www.linkedin.com/groups/RabbitMQ-2830653
● https://github.com/intrepidkarthi/RabbitMQ-Android-Chat
● http://rubyamqp.info/
● rabbitmq.1065348.n5.nabble.com/previous-connection-is-NOT-automatically-
closed-if-IP-different-td31096.html
![Page 16: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/16.jpg)
![Page 17: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/17.jpg)
![Page 18: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/18.jpg)
Android
673 Commits
5 contributors
Design
100 commits
7 contributors
ROR
252 commits
1 contributor
Marketing
5-6 Contributors
![Page 19: June 2014 - Building Rabbit MQ based chat on Android](https://reader035.vdocuments.mx/reader035/viewer/2022062513/55511789b4c905f10b8b4f44/html5/thumbnails/19.jpg)
Love books? Tomorrow @ 11 am