我正在寻找将数据(字符串)从我的服务器(PHP)发送到一个特定的Android设备的最佳方法。我可以检查设备上我的服务器上是否在线/离线(使用 http-post 方法)。但是我不知道如何在没有GCM的情况下将数据发送到特殊设备。(我不在寻找推送通知,我将向最多 100 个用户发送消息。
不使用 GCM,您有以下几种选择:
- 应用按指定的时间间隔轮询服务器以获取更新。它可能会影响设备的电池寿命和网络使用情况。
- 应用程序打开与服务器的 TCP 连接,然后服务器使用该连接将更新发送到应用程序。不过,我很确定这不是你想在PHP中做的事情。
- 服务器向设备发送短信(假设它是手机),应用程序会拦截它。这将要求你的服务器知道收件人的电话号码,并暗示使用一些短信API(通常是付费的)。
- 应用程序(Web 视图或 Web 应用程序)使用 WebSocket 连接到服务器
- 使用不同于GCM的推送服务(即城市飞艇)
从所有这些中,我会首先研究民意调查。这通常被认为是一种不好的做法,但事实并非如此。看看这篇AT&T博客文章,了解一些测量结果。
另一种解决方案是使用 MQTT .
-
在您的服务器中安装 MQTT 并创建您的队列。
使用其中一个 PHP 库写入 PHP 中的队列:https://github.com/mqtt/mqtt.github.io/wiki/libraries
在安卓接收消息与 http://www.eclipse.org/paho/clients/android/
是异步的,所有通信都在您的局域网内工作,无需外部公共服务(如 GCM)。
我希望这会有所帮助。