我正在寻找在我的移动应用程序中使用的通信协议。第一个目标是Android,但如果它在iOS、OSX和Windows 8等其他平台上得到支持,实际上会非常好。主要目标是:
它必须非常节能,我们发送的消息实际上非常小并且大部分时间没有通信(它是用于感应的,并且更新不是很频繁)
它应该支持间歇性连接并保证消息传递对于应用程序来说不错过更新很重要
应该能够支持部分或全部消息的加密一些传感器数据包含隐私敏感信息
*不需要持续连接 *这样应用程序可以在不使用时进入睡眠状态。Google Cloud Messaging 在从服务器接收消息时效果很好,但问题是要从客户端发送一些东西而无需保持连接处于活动状态。
以前的版本使用 XMPP 和 JSON 消息,但我认为这是一个坏主意,因为它需要持续连接,而且它并不意味着节能。
我想使用 Protocol Buffers 而不是 JSON 来获得更紧凑的表示和更快的序列化,但我还没有决定传输。搜索时出现了MQTT,可能有道理,但它的加密支持不是很好,而且似乎需要保持连接。我想知道是否还有其他合适的候选人可以考虑。有什么建议或想法吗?