我应该为从云后端到移动应用程序的通知/事件选择什么协议?

时间:2015-07-27 10:00:33

标签: cloud protocols backend mobile-application

我目前正在为典型的移动应用程序开发云后端。后端应该提供一些数据并提供有关后端更改的通知。

请求/响应API的最常见解决方案似乎是HTTP REST。实现似乎非常简单。

现在问题出在通信流程的反面,即从后端到应用程序的通知/事件。我想知道现代移动应用程序中通常使用哪种协议和API。

根据我在Web应用程序方面的经验,我会尝试WebSockets,可能是STOMP over WebSockets。还有其他一些双向协议,如MQTT,但我不确定它是否合适。这种通信也可以通过轮询实现HTTP,但我认为这是一个死胡同,原因有很多。

对于以通知/事件的形式将数据从后端推送到应用程序的通信类型,您会建议什么协议?

2 个答案:

答案 0 :(得分:1)

我认为您为Apple设备预留Apple推送通知(APN),为Android设备放置Google Cloud Messaging(GCM)。这些是您可以考虑的选项。

如果你想自己实现它,你已经知道的主要问题是NAT设备和防火墙。我可以提出的选项:

  • Websockets是一种可能性。始终通过SSL,否则您将遇到代理和中间任何其他设备的问题。
  • MQTT是物联网中考虑的一个选项。这可能是通过防火墙的问题,但我不确定
  • HTTP选项是COMET和长轮询

还有许多服务提供通知服务,例如Urban Airship和许多其他服务。

答案 1 :(得分:0)

STOMP是一个相当不错的解决方案。我不确定它是否适合您的使用案例,但如果是我,我会探索它。