在没有GCM的情况下将数据发送到特定设备


Send data to specific device without GCM

我正在寻找将数据(字符串)从我的服务器PHP)发送到一个特定的Android设备的最佳方法。我可以检查设备上我的服务器上是否在线/离线(使用 http-post 方法)。但是我不知道如何在没有GCM的情况下将数据发送到特殊设备。(我不在寻找推送通知,我将向最多 100 个用户发送消息。

不使用 GCM,您有以下几种选择:

  • 应用按指定的时间间隔轮询服务器以获取更新。它可能会影响设备的电池寿命和网络使用情况。
  • 应用程序打开与服务器的 TCP 连接,然后服务器使用该连接将更新发送到应用程序。不过,我很确定这不是你想在PHP中做的事情。
  • 服务器向设备发送短信(假设它是手机),应用程序会拦截它。这将要求你的服务器知道收件人的电话号码,并暗示使用一些短信API(通常是付费的)。
  • 应用程序(Web 视图或 Web 应用程序)使用 WebSocket 连接到服务器
  • 使用不同于GCM的推送服务(即城市飞艇)

从所有这些中,我会首先研究民意调查。这通常被认为是一种不好的做法,但事实并非如此。看看这篇AT&T博客文章,了解一些测量结果。

另一种解决方案是使用 MQTT .

  1. 在您的服务器中安装 MQTT 并创建您的队列。

  2. 使用其中一个 PHP
  3. 库写入 PHP 中的队列:https://github.com/mqtt/mqtt.github.io/wiki/libraries

  4. 在安卓接收消息与 http://www.eclipse.org/paho/clients/android/

通信

是异步的,所有通信都在您的局域网内工作,无需外部公共服务(如 GCM)。

我希望这会有所帮助。