如何从网络服务器向Android应用发送数据?

哈利

假设我要创建一个类似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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将android应用与网络服务器连接

来自分类Dev

网络服务器仅向客户端发送一次数据,而不是循环

来自分类Dev

Apache 网络服务器如何检测 CNAME

来自分类Dev

双向网络服务器

来自分类Dev

从 PHP 网络服务器向 android 智能手表发送推送通知的可能性(不使用 Firebase/GCM 等)

来自分类Dev

如何连续检查Android设备上网络服务器保存的变量?

来自分类Dev

如何使我在Android上运行的网络服务器公开可用

来自分类Dev

如何将 HTML 页面从 C 网络服务器发送到网络浏览器

来自分类Dev

是否可以将用户位置从 iOS 应用程序发送到网络服务器?

来自分类Dev

如何在没有网络服务器的情况下运行“ sencha应用程序监视”

来自分类Dev

如何让在 docker 和 gunicorn 上作为网络服务器运行的letsencrypt Flask 应用程序..?

来自分类Dev

网络服务器浏览器应用程序

来自分类Dev

与 C++ 应用程序的轻量级网络服务器通信

来自分类Dev

网络服务器的out.flush()问题

来自分类Dev

与网络服务器相关的autoIndex是什么?

来自分类Dev

设置安全的网络服务器

来自分类Dev

设置动态网络服务器

来自分类Dev

保持我的生产网络服务器更新

来自分类Dev

网络服务器上的Memcached

来自分类Dev

在Yaws网络服务器上上传进度

来自分类Dev

简单的网络服务器无法正常工作

来自分类Dev

元素在网络服务器上消失

来自分类Dev

网络服务器显示错误的布局

来自分类Dev

网站/网络服务器容错-最佳做法

来自分类Dev

oAuth2 的 Java 网络服务器

来自分类Dev

网络服务器 php 和 mysql 滞后

来自分类Dev

自动启动网络服务器和程序

来自分类Dev

使用ajax从网络服务器获取响应

来自分类Dev

如何杀死气流调度器和网络服务器?

Related 相关文章

  1. 1

    将android应用与网络服务器连接

  2. 2

    网络服务器仅向客户端发送一次数据,而不是循环

  3. 3

    Apache 网络服务器如何检测 CNAME

  4. 4

    双向网络服务器

  5. 5

    从 PHP 网络服务器向 android 智能手表发送推送通知的可能性(不使用 Firebase/GCM 等)

  6. 6

    如何连续检查Android设备上网络服务器保存的变量?

  7. 7

    如何使我在Android上运行的网络服务器公开可用

  8. 8

    如何将 HTML 页面从 C 网络服务器发送到网络浏览器

  9. 9

    是否可以将用户位置从 iOS 应用程序发送到网络服务器?

  10. 10

    如何在没有网络服务器的情况下运行“ sencha应用程序监视”

  11. 11

    如何让在 docker 和 gunicorn 上作为网络服务器运行的letsencrypt Flask 应用程序..?

  12. 12

    网络服务器浏览器应用程序

  13. 13

    与 C++ 应用程序的轻量级网络服务器通信

  14. 14

    网络服务器的out.flush()问题

  15. 15

    与网络服务器相关的autoIndex是什么?

  16. 16

    设置安全的网络服务器

  17. 17

    设置动态网络服务器

  18. 18

    保持我的生产网络服务器更新

  19. 19

    网络服务器上的Memcached

  20. 20

    在Yaws网络服务器上上传进度

  21. 21

    简单的网络服务器无法正常工作

  22. 22

    元素在网络服务器上消失

  23. 23

    网络服务器显示错误的布局

  24. 24

    网站/网络服务器容错-最佳做法

  25. 25

    oAuth2 的 Java 网络服务器

  26. 26

    网络服务器 php 和 mysql 滞后

  27. 27

    自动启动网络服务器和程序

  28. 28

    使用ajax从网络服务器获取响应

  29. 29

    如何杀死气流调度器和网络服务器?

热门标签

归档