簡體   English   中英

Android實時應用

[英]Android Real-Time application

我正在研究用戶之間的共享任務。 通過Google Cloud Messaging,我可以通知用戶目標他共享了一個新任務。 問題是:GCM不提供送貨保證。 如果有人花了幾分鍾時間傳遞消息還是沒來得及使用,它將使用WhatsApp之類的應用程序嗎? 那是我的GCM問題。

所以我有一個解決方案:使用套接字!!!

使用Socket.oi和Node.js,我的夢想變成了像魔術一樣真正的作品! 但是,由於沒有什么是免費的,因此保持插座連接的電池成本非常高。 有人認為,在沒有通信,無進出出,無循環的情況下使用套接字,因此沒有消耗。

我的朋友們,我讀了很多文章,不知道應該采用哪種方法。 我請你幫忙。 Soket.oi? WebSocket ???

如何保持與服務器的連接永久保留大部分電池?

我感謝大家的幫助!

Socket.io很好,並且在許多實時應用程序中肯定有用,但是當應用程序被用戶終止時會發生什么? 還是用戶重新啟動手機? 那么您將如何接收通知?

對於所有目的,GCM都足夠好。

您需要混合使用套接字連接和GCM。 兩種連接類型都不能保證傳遞,因此您需要實現檢查消息歷史記錄一致性的機制。

簡化方案如下所示:

  1. 用戶啟動您的客戶端
  2. 客戶端應用在GCM上注冊,並將Google ID發送到您的服務器。
  3. 客戶端應用程序建立套接字連接
  4. 您的服務器通過GCM 套接字連接向客戶端發送消息(如果已通過特定連接建立)
  5. 每條消息都有唯一的ID,因此客戶端可以忽略來自套接字連接的Google的第二條相同的消息

關於未傳遞的消息:

當客戶端通過套接字連接連接到服務器時,它應該收到響應,並在其中放置消息的歷史記錄。 它不應該是完整的歷史記錄,而應該只是最后一條消息(以防您開發聊天應用程序)。 然后,客戶僅檢查他是否已通知用戶有關最后一條消息的信息。 如果不是,則您的客戶端向服務器發出請求(http或通過套接字),並接收未傳遞的消息。

電池消耗:

不要獲取喚醒鎖來保持套接字連接! 設備必須進入睡眠狀態。 GCM將喚醒手機。

暫無
暫無

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

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