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來處理消息傳遞? –

相關問題