如何使用移动应用程序处理 RabbitMQ

Ark*_*ken 3 rabbitmq google-compute-engine google-cloud-messaging google-cloud-endpoints

我希望在谷歌计算引擎上实现rabbitmq来处理我的android和ios消息应用程序上的消息。我听说rabbitmq可能非常耗电,所以我想知道解决这个问题的最佳解决方案是什么?我是否使用不同的协议(例如 MQTT),或者使用 GCM 之类的协议来处理与应用程序之间的连接,并让rabbitmq 仅处理消息排队?

pbh*_*ick 5

您永远不会希望从移动设备直接连接到 RabbitMQ 服务器,尤其是当设备上的应用程序是消费者时。RabbitMQ 消费者必须不断轮询 RabbitMQ 以检查是否有待处理的消息。您可能希望 Web 服务器能够处理来自设备的实际 HTTP POST/GET 消息。网络服务器将做两件事:

  1. 将消息保存到数据库(以及源和预期目的地信息)

  2. 队列 APN/GCM 将消息推送到 RabbitMQ(此处为代理)交换

    您将需要构建一个守护进程来监视 RabbitMQ 是否有这些已排队的推送消息。该守护程序的唯一任务是连接或维护与 Apple 或 Google 的推送消息服务的连接,并通知您的应用程序有待处理的消息。如果设备收到待处理消息的通知,它会联系网络服务器以使用该消息