从服务器端向Android应用程序发送警报/通知,无需访问Internet

我需要从webapp发送推送通知到 Android应用程序.

基本上我只是想通知android客户端服务器上有新数据.所以它只需要是手机的弦振动/声音.

这里的(大)问题是我在公司网络内部无法访问互联网.这就是我无法使用GCM的原因.

到目前为止,我找到了以下选项来完成没有GCM的任务:

>使用XMPP
> WebSockets
> Ajax轮询

是否可以将WebSockets或AjaxPolling包含到原生Android应用程序中以触发振动等事件?

是否有一个更简单的解决方案,没有像xmpp那样多的开销,因为我只需要发送一个简短的通知?到目前为止,我明白我需要像SMACK XMPP for Android那样思考,例如此方案的服务器端的Openfire和XMPPHP.

最佳答案 由于没有人回复,我想为您提供我现在尝试追求的方法.

我使用Laravel编写API.它为Redis提供了开箱即用的支持,这对广播活动来说非常棒 – > https://laravel.com/docs/5.1/events

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

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

这些事件是从在同一台机器上运行的Socket.IO Server-Instance接收的.

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) {}
}
点赞