我需要从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) {}
}