假设我要创建一个类似WhatsApp或Viber的消息传递应用程序。要发送消息,必须先将消息从用户A传输到服务器,然后再从服务器传输到用户B。问题是,用户B如何知道服务器上有一条针对他的新消息?一种解决方案是每秒检查服务器是否有新消息。但是,此解决方案将导致性能问题。
解决此问题的最佳方法是什么?如何将数据从Web服务器发送到android应用,而无需定期检查服务器?
有关我需要使用哪些类或技术的一些线索和/或一些示例代码将不胜感激。预先感谢大家。
是的,由于许多原因,包括高电池使用量,高带宽使用量和高后端资源使用量,定期检查或“轮询”后端并不理想。
“将数据发送到移动应用程序”的名称是“推送通知”。
在Android平台上,该平台内置了对Google Cloud Messaging(GCM)的支持,该功能可为您处理所有底层通信。设置所需要做的就是向Google注册您的应用,以获取GCM“ API令牌”,然后该应用从手机中获取“设备ID”,并将其移交给您的网络服务器或其他后端。当您的后端要发送推送时,它会与Google联系并传递设备ID和消息。Google会将消息转发到手机,您的应用可以在其中收听并采取一些措施。
有关官方故事,请访问Google Cloud Messaging网站。您可以在其中找到有关如何修改应用程序(客户端)以使其能够侦听推送的示例,以及如何编写Web服务器以将推送消息发送至应用程序的示例。
GCM非常快,因此即使性能是您的首要任务,它也是一个不错的选择。根据我的经验,在我从后端发送请求之后,就可以可靠地暂时接收到推送。请注意,根据许多因素,不能保证GCM通过。将其视为一个不错的功能,而不是整个设计所依赖的核心组件:)
哦,它是免费的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句