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