[英]Android Real-Time application
我正在研究用戶之間的共享任務。 通過Google Cloud Messaging,我可以通知用戶目標他共享了一個新任務。 問題是:GCM不提供送貨保證。 如果有人花了幾分鍾時間傳遞消息還是沒來得及使用,它將使用WhatsApp之類的應用程序嗎? 那是我的GCM問題。
所以我有一個解決方案:使用套接字!!!
使用Socket.oi和Node.js,我的夢想變成了像魔術一樣真正的作品! 但是,由於沒有什么是免費的,因此保持插座連接的電池成本非常高。 有人認為,在沒有通信,無進出出,無循環的情況下使用套接字,因此沒有消耗。
我的朋友們,我讀了很多文章,不知道應該采用哪種方法。 我請你幫忙。 Soket.oi? WebSocket ???
如何保持與服務器的連接永久保留大部分電池?
我感謝大家的幫助!
Socket.io很好,並且在許多實時應用程序中肯定有用,但是當應用程序被用戶終止時會發生什么? 還是用戶重新啟動手機? 那么您將如何接收通知?
對於所有目的,GCM都足夠好。
您需要混合使用套接字連接和GCM。 兩種連接類型都不能保證傳遞,因此您需要實現檢查消息歷史記錄一致性的機制。
簡化方案如下所示:
關於未傳遞的消息:
當客戶端通過套接字連接連接到服務器時,它應該收到響應,並在其中放置消息的歷史記錄。 它不應該是完整的歷史記錄,而應該只是最后一條消息(以防您開發聊天應用程序)。 然后,客戶僅檢查他是否已通知用戶有關最后一條消息的信息。 如果不是,則您的客戶端向服務器發出請求(http或通過套接字),並接收未傳遞的消息。
電池消耗:
不要獲取喚醒鎖來保持套接字連接! 設備必須進入睡眠狀態。 GCM將喚醒手機。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.