1

我期待在google计算引擎上实现rabbitmq以处理我的android和ios消息传递应用程序中的消息。我听说rabbitmq可能很耗电,所以我想知道解决这个问题的最佳解决方案是什么? 我是否使用不同的协议,如MQTT或所以我使用类似GCM来处理应用程序的连接和让rabbitmq只处理消息排队?如何使用移动应用程序处理RabbitMQ

+0

你究竟是什么意思“耗电量”?因为它消耗太多的CPU周期? – pbhowmick

+0

我的意思是电池,我听说它会在移动设备上耗尽电池电量,因为它会使连接打开时间过长 –

回答

0

你永远不会想要从移动设备直接连接到你的RabbitMQ服务器,特别是如果设备上的应用程序是消费者。 RabbitMQ消费者必须持续轮询RabbitMQ以检查是否有消息等待处理。你会想要一个Web服务器来处理来自设备的实际HTTP POST/GET消息。 Web服务器会做两件事情:

  1. 保存消息DB(与源一起和预期目的地信息)
  2. 队列APN/GCM推送消息到RabbitMQ的(这里的经纪人)交换

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

+0

感谢您的回复,所以基本上我使用rabbitmq处理消息后端并使用gcm ccs之类的设备与设备进行通信到rabbitmq? –

+0

RabbitMQ是一个消息代理。将其用作Web服务器和APN/GCM守护程序之间的代理,以通知用户的设备存在等待消息的消息。我有点复杂,因为如果设备处于脱机状态并且没有收到APN/GCM通知,您必须弄清楚该做什么(即必须有重试策略,何时不重试,如果用户的设备在传递推送消息前读取消息) – pbhowmick

+0

感谢您的回复,您认为最好不要使用rabbitmq,只使用gcm xmpp来处理消息传递? –

相关问题