I am looking for a communication protocol for use in my mobile application. The first goal is Android, but in fact it will be very good if it is supported on other platforms such as iOS, OSX and Windows 8. Main goals:
It should be very energy efficient , the messages we send are actually very small, and in most cases there is no connection (this is not very common for perception and updates)
It must support intermittent communications and ensure message delivery . It is important that the application does not miss updates.
Must be able to support encryption for some or all messages . Some sensor data contains confidential information.
* No permanent connection required * To allow the app to sleep when not in use. Google Cloud Messaging works great when it comes to receiving messages from the server, but the problem is that there is something to send from clients, without requiring to maintain a connection.
The previous version used XMPP and JSON messages, but I think this is a bad idea, because it requires a permanent connection, and it should not be energy efficient.
I want to use protocol buffers instead of JSON for a more compact representation and faster serialization, but I'm not sure about the transport. MQTT appeared during the search, and this may make sense, but its encryption support is small and it seems that you need to maintain a connection. I wonder if there are other suitable candidates to consider. Any recommendations or thoughts?
source share