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



我需要从网络应用程序向安卓应用程序发送推送通知。基本上,我只想通知android客户端服务器上有新数据可用。所以它只需要是一根绳+手机的振动/声音。

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

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

  • 使用 XMPP
  • 网络套接字
  • 阿贾克斯轮询

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

有没有更简单的解决方案,没有像 xmpp 那样多的开销,因为我只需要发送一个简短的通知?到目前为止,我知道我需要一些像 Android + 的 SMACK XMPP 这样的想法,例如 Openfire 和服务器端的 XMPPHP 对于这种情况。

既然没有人回复,我想给你一个我现在尝试追求的方法。

我使用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 有一个安卓客户端实现,它允许我在原生安卓应用程序中连接到 socket.io 服务器。下面是一个示例:http://socket.io/blog/native-socket-io-and-android/

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

相关内容

  • 没有找到相关文章

最新更新