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

Cloud 我应该为从云后端到移动应用程序的通知/事件选择什么协议?,cloud,protocols,backend,mobile-application,Cloud,Protocols,Backend,Mobile Application,我目前正在为一个典型的移动应用程序开发一个云后端。后端应该提供一些数据,并提供关于后端更改的通知 请求/响应API最常见的解决方案似乎是HTTP REST。实现似乎相当简单 现在问题出现在通信流的反面,即从后端到应用程序的通知/事件。我想知道现代移动应用程序中通常使用什么样的协议和API 根据我在web应用程序方面的经验,我可能会尝试WebSocket。还有一些其他双向协议,如MQTT,但我不确定它是否适合。这种通信也可以通过轮询通过HTTP实现,但我想这是一条死胡同,原因有很多 对于以通知/事

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

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

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

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


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

我假设您将苹果设备的推送通知(APN)和安卓设备的谷歌云消息(GCM)放在一边。这些是你可以考虑的选项。

如果您想自己实现它,那么您已经知道的主要问题是NAT设备和防火墙。我能想到的选项有:

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

还有许多服务提供通知服务,如城市飞艇和其他许多服务。

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