0

我想构建一个Android应用程序,将来自无线传感器(约3 kb/s)的数据传输到我的服务器。使用GCM可以流式传输数据吗?

要唤醒手机,事实证明我不能轻易使用我的服务器上的套接字,但需要GCM推送通知。但是,如果我只是为了开始流式传输而实现所有GCM,那么也可以更容易地将GCM用于数据流,而不是我自己的websocket实现。

文档说一个数据包可以是最大4 kb,如果设备每秒可靠地传输它们,那应该就足够了。但是由于GCM不是为这样的快速间隔和带宽设计的,任何人都有经验,如果它是可行和可靠的,还是更好地直接连接到我的服务器呢?

+0

这是不可行的。无法保证邮件何时发送。实际上,延迟可以从几乎瞬间变化到几十分钟。 – NickT

回答

0

我会直接连接到您自己的服务器,主要是因为如您所说,GCM服务并非真正为此设计的,并且Google有权限阻止连接并延迟GCM通知,如果他们认为您正在使用太多的带宽。在进行压力测试时,我自己也经历过这种情况 - 通知开始放慢速度,最终gmail帐户所使用的设备被禁止。

类似

的GCM一般模式应该是:

  1. 有事,该设备​​需要知道服务器上。

  2. 一个GCM通知被发送到具有小负载的设备,例如CommandNumber = 1。

  3. 设备侦听通知,并且由于CommandNumber == 1以某种方式响应,在这种情况下可能会打开套接字到您的服务器。

+0

这个选项的问题是,如果我们公司将来不得不关闭它的服务器,那么这个应用程序也将停止运行。我正在寻找一种将消息发送给应用程序的其他实例的方法,如果它完全基于GCM,则不需要我们继续使用服务器来仅对隧道进行通信。 – Muis

相关问题