将警报/通知从服务器端发送到 android 没有互联网访问权限的应用程序

Sending alerts / notifications from server side to android application without internet access

我需要从网络应用向 android 应用发送推送通知。 基本上我只想通知 android 客户端服务器上有新数据可用。所以它只需要是 phone 的字符串 + vibration/sound。

这里的(大)问题是我在无法访问 Internet 的公司网络中。这就是我不能使用 GCM 的原因。

到目前为止,我发现以下选项可以在没有 GCM 的情况下完成任务:

是否可以包含 WebSockets 或 Ajax轮询到本机 Android 应用程序以触发振动等事件?

有没有更简单的解决方案,没有 xmpp 那样的开销,因为我只需要发送一个简短的通知?到目前为止,我明白我需要像 SMACK XMPP 这样的想法来实现 Android + 例如OpenfireXMPPHP 在这个场景的服务器端。

由于没有人回复,我想为您提供一种我现在尝试追求的方法。

我用Laravel来写API。它带有对 Redis 的开箱即用支持,这对广播事件来说非常棒 -> https://laravel.com/docs/5.1/events

以下只是一个简单的例子:

Redis::publish('test', json_encode($data));

这些事件是从同一台机器上的 Socket.IO 服务器实例 运行 接收到的。

var Redis = require('ioredis');
var redis = new Redis();

redis.subscribe('test');

....

server.listen(3000);

Socket.IO 有一个 android 客户端实现,它允许我以原生 android 连接到 socket.io 服务器] 应用程序。 这是一个例子:http://socket.io/blog/native-socket-io-and-android/

private Socket mSocket;
{
    try {
        mSocket = IO.socket("http://localhost:3000");
    } catch (URISyntaxException e) {}
}