我正在开发用户共享任务的应用程序。通过Google消息传递,我可以通知用户目标,他有一个新的任务共享。问题是: GCM不提供送货担保。有人会使用像WhatsApp这样的应用程序,如果他花了几分钟的时间传递一条信息,或者没有收到消息?这就是我对GCM的问题。
所以我有一个解决方案:使用套接字!
使用Socket.oi和Node.js,我的梦想真的变成了魔术!但是,由于没有免费的,保持插座连接有一个非常高的成本电池。有些人认为,使用套接字时没有通信,没有任何进出,没有周期,所以没有消耗。
我的朋友们,我读了很多课文,不知道该怎么做。我请求你的帮助。Soket.oi?WebSocket?
如何保持连接到我的服务器永久保存大部分电池?
感谢大家的帮助!
发布于 2014-12-20 14:35:38
您需要使用套接字连接和GCM的混合。这两种连接类型都不能保证传递,因此您需要实现检查消息历史记录一致性的机制。
简化的场景可能如下所示:
关于未传递的信息:
当客户端通过套接字连接连接到服务器时,它应该收到响应,其中应该放置消息的历史记录。它不应该是完整的历史,它可能只是最后一条消息(万一你开发聊天应用)。然后,客户端只检查他是否通知了用户最后一条消息。如果没有,则客户端向服务器发出请求(http或通过套接字),并接收未传递的消息。
电池消耗:
不要获取唤醒锁来维护套接字连接!设备必须睡觉。GCM将唤醒手机。
发布于 2014-12-20 13:54:49
Socket.io很好,当然在许多实时应用程序中也很有用,但是当应用程序被用户终止时会发生什么呢?还是用户重新启动手机?那么你将如何收到通知呢?
对于所有的目的来说,GCM已经足够好了。
https://stackoverflow.com/questions/27580283
复制相似问题