我想在我的android應用程序中開發消息應用程序。該消息將像whatsapp和beluga一樣。我搜索了它,發現C2DM Android 2.2可以將推送通知發送到設備。但是,這在Android 2.1上不可用。任何人都知道whatsapp如何發送2.1設備的通知?如何在Android 2.1中實現Beluga或WhatsApp類似的消息系統
回答
對於Android:Whatsapp建立在C2DM之上,當應用程序打開時,它會打開與其服務的XMPP連接以立即傳遞消息。他們也可能使用MQTT作爲協議來減少電池使用量。基本上就是這樣。
編輯:我學到了更多,Facebook在他們的消息應用程序中使用MQTT。 Whatsapp建立在XMPP上,並帶有自己的擴展。他們的服務器端運行在ejabbard之上(erlang中的XMPP實現)。 http://www.ejabberd.im/
在2.1之前的設備上,WhatsApp可能會在後臺保持與XMPP服務器之間的連接,但這對於電池壽命並不是很好。
我不知道在whatsapp中使用了什麼確切的技術。但是,如果我要實施通知,其中不支持來自操作系統的推送通知,我可以做兩件事:
- 每隔X秒輪詢一次遠程服務器並檢查新通知(這是比較昂貴的選擇)。
- 運行一個後臺服務,維護與遠程服務器的連接,這將向我發送任何要接收的通知(有點像我自己的推送通知實現)。
您的第二種方法是否也適用於離線通知? – angelokh 2011-04-29 06:49:38
你能詳細說明'離線通知'的含義嗎? – thekindofme 2011-04-29 06:52:54
我認爲在服務器端需要做一些事情,比如當目標設備關閉時將狀態和通知存儲到存儲設備中。 – angelokh 2011-05-01 21:55:34
現在將C2DM替換爲GCM (google cloud messaging)。您可以使用它將通知發送到您的應用程序。對於消息交換,應該依賴xmpp(whatsapp),mqtt(facebook messenger),mtproto(telegram)等協議。
如果您希望熟悉GCM。試試這個教程由appsrox - Create an Instant Messaging app using Google Cloud Messaging (GCM)
他們也使用GCM的消息傳遞以及。它不適合生產,但它對於想要開發即時消息android應用程序的人來說是一個很好的資源。
- 1. 如何在Android中創建類似WhatsApp的聊天消息塊?
- 2. 如何實現消息發送系統?
- 3. 如何在GAE上建模聊天/消息系統(如whatsapp,LINE)
- 4. Yii的消息系統實現
- 5. 如何在php/mysql中實現類似SO的標記系統?
- 6. 在消息傳遞系統中如何實現屏障?
- 7. 如何在用戶之間實現消息傳遞系統?
- 8. 如何實現在Android的類似「框彈出」到Viber的(收到消息時)
- 9. iOS實施消息系統
- 10. 如何實現基於Spring MVC的消息傳遞系統
- 11. 如何實現類似於linux系統時鐘的c時鐘
- 12. 相對佈局類似於WhatsApp的消息
- 13. 在mongodb中實現facebook風格的狀態消息系統
- 14. 實現android系統
- 15. 如何實現單獨但類似的spring消息.properties文件
- 16. 如何實現類似Twitter的消息外觀?
- 17. 如何在Android上實現視頻剪裁,比如instagram或Whatsapp?
- 18. 獲取WhatsApp消息
- 19. 如何在Android中顯示類似統計信息的數據?
- 20. Android系統如何實現內部intentservice
- 21. 通過WhatsApp在特定的聯繫人發送消息android
- 22. 創建類似於whatsapp的消息歷史(objective-c)
- 23. 如何實現類別系統
- 24. 你如何在android中提示用戶類似toast的消息?
- 25. 如何在Android中發送類似Skype的IM消息?
- 26. 實現類似twitter的跟隨者系統的好方法?
- 27. 將消息發送到whatsapp聯繫人
- 28. 使用FCM實現聊天消息通知,如WhatsApp
- 29. 如何以低延遲創建類似系統的文本消息?
- 30. 如何在android中實現類似於css中的on_hover?
你如何確定他們在使用C2MD,請你詳細說明一下,因爲C2MD也使用XMPP協議,那麼爲什麼WhatsApp不會使用他們自己的服務而不是使用C2MD? – Hunt 2014-06-04 05:54:51