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

如何使用移动应用程序处理RabbitMQ,rabbitmq,google-cloud-endpoints,google-compute-engine,google-cloud-messaging,Rabbitmq,Google Cloud Endpoints,Google Compute Engine,Google Cloud Messaging,我希望在谷歌计算引擎上实现rabbitmq,以便在我的android和ios消息传递应用程序上处理消息。我听说rabbitmq可能非常耗电,所以我想知道解决这个问题的最佳方案是什么? 我是否使用不同的协议(如MQTT)或者我使用类似GCM的协议来处理与应用程序之间的连接,并让rabbitmq处理消息队列?您永远不会希望从移动设备直接连接到rabbitmq服务器,尤其是如果设备上的应用程序是消费者。RabbitMQ使用者必须连续轮询RabbitMQ,以检查是否有消息等待处理。您需要一个web服务器

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

您永远不会希望从移动设备直接连接到rabbitmq服务器,尤其是如果设备上的应用程序是消费者。RabbitMQ使用者必须连续轮询RabbitMQ,以检查是否有消息等待处理。您需要一个web服务器来处理来自设备的消息的实际HTTP POST/GET。Web服务器将做两件事:

  • 将消息保存到DB(以及源和目标信息)

  • 队列APN/GCM将消息推送到RabbitMQ(此处的代理)交换机

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


  • 你说的“耗电”到底是什么意思?因为它消耗了太多的CPU周期?我是说电池,我听说它会耗尽移动设备上的电池,因为它会让连接保持太长时间以等待回复,所以基本上我使用rabbitmq来处理消息后端,并使用类似gcm ccs的东西从设备到rabbitmq进行通信?rabbitmq是一个消息代理。将其用作Web服务器和APN/GCM守护进程之间的代理,以通知用户的设备有消息等待它。我有点复杂,因为你必须弄清楚如果设备脱机并且没有收到APN/GCM通知,该怎么办(即,你必须有重试策略,如果用户的设备在推送消息发送之前读取消息,那么不重试是必要的),谢谢你的回复,您认为不使用rabbitmq而只使用gcm xmpp来处理消息传递更好吗?xmpp是一种过度使用的方式,用于需要用户“在场”的地方。