簡體   English   中英

如何在 Android 2.1 中實現 Beluga 或類似 WhatsApp 的消息系統

[英]How to implement Beluga or WhatsApp like messaging system in Android 2.1

我正在嘗試在我的 android 應用程序中開發一個消息應用程序。 該消息將像whatsapp和beluga。 我搜索了一下,發現 C2DM Android 2.2 可以向設備發送推送通知。 但是,這在 Android 2.1 上不可用。 有人知道whatsapp 是如何發送2.1 設備的通知的嗎?

對於 Android:Whatsapp 是基於 C2DM 構建的,當應用程序打開時,它會打開與其服務的 XMPP 連接以立即傳遞消息。 他們還可能使用 MQTT 作為協議來最大程度地減少電池使用量。 基本上就是這樣。

編輯:我學到了更多,Facebook 在他們的消息傳遞應用程序中使用 MQTT。 Whatsapp 建立在 XMPP 之上,並帶有自己的擴展。 他們的服務器端運行在 ejabbard(erlang 中的 XMPP 實現)之上。 http://www.ejabberd.im/

在 2.1 之前的設備上,WhatsApp 可能會在后台保持與 XMPP 服務器的連接,但這對電池壽命來說並不是很好。

C2DM 現在被GCM(谷歌雲消息傳遞)取代。 您可以使用它將通知傳遞到您的應用程序。 對於消息的交換,應該依賴於 xmpp (whatsapp)、mqtt(facebook messenger)、mtproto (telegram) 等協議。

如果您想熟悉 GCM。 試用appsrox 的本教程 -使用 Google Cloud Messaging (GCM) 創建即時消息應用程序

他們也使用 GCM 進行消息傳遞。 它不適合生產,但對於想要開發即時消息 android 應用程序的人來說,它是一個極好的資源。

我不知道 whatsapp 中使用了哪些確切的技術。 但是,如果我要在不支持來自操作系統的推送通知的情況下實現通知,我可以做兩件事:

  1. 每 X 秒輪詢一次遠程服務器並檢查新通知(這是更昂貴的選擇)。
  2. 運行后台服務,保持與遠程服務器的連接,它將向我發送任何要接收的通知(有點像我自己的推送通知實現)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM