我需要从webapp发送推送通知到Android应用程序。 基本上我只是想通知android客户端服务器上有新数据。所以它只需要是手机的字符串+振动/声音。
这里的(大)问题是我在无法访问互联网的企业网络中。这就是我无法使用GCM的原因。
到目前为止,我找到了以下选项来完成没有GCM的任务:
是否可以将WebSockets或AjaxPolling包含到原生Android应用中以触发振动等事件?
是否有更简单的解决方案,没有像xmpp那样多的开销,因为我只需要发送一个简短的通知?到目前为止,我理解我需要像Android +的 SMACK XMPP 这样的想法,例如:针对此方案,服务器端的 Openfire 和 XMPPHP 。
答案 0 :(得分:1)
由于没有人回复,我想为您提供我现在尝试追求的方法。
我使用 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) {}
}