0

我有一个 Android(业务)应用程序,它应该创建一个通知,然后在服务器端的特定数据发生变化时尽快更新其内容。数据通过 IIS 中托管的 .NET REST 样式 Web 服务访问,该服务最多可为 1000 个用户提供服务。

我阅读了有关推送通知的 GCM 服务,这将带来很多好处。我认为我不能使用它的原因是:

  • 设备需要设置一个谷歌账户,这是额外的部署成本
  • 这些设备不绑定到一个人,但内容是。用户通过应用程序登录。

所以我认为我需要在特定的时间间隔内进行轮询,在那里我会考虑不耗尽电池的技术。如果数据更改和通知之间的延迟不到一分钟,那就太好了。

进行一些近似和估计的计算:

  • 流量/一分钟间隔/每天/每台设备:HTTP GET 请求约为 500 字节 * 60 * 24 = ~700kb
  • 为 1000 个用户支付负载/每分钟:1000 个索引列上的数据库 Guid 查找约 3 秒

我想减少流量并将负载降到最低。所以我需要一种技术,它可以让我发送更少的请求,这不会影响用户在关注的意义上真正消耗的更改和通知之间的延迟。

编辑:好的,我对这个话题有了更深入的了解。关键字是彗星。对我来说正确的方法似乎是长轮询技术。Web 开发上下文中的其他关键字是服务器发送的事件和 Web 套接字,两者都需要 HTML5,无论如何这里都没有涉及。知道我正在寻找一种不被迫建立消息传递基础设施的方法。我想使用该通知功能集成到现有的 Web 服务中。如果我找到答案,我会更新。

您将如何减少流量并支付负载? 也许很有趣。GCM 如何做到这一点?他们不能真正通知设备。他们也需要投票。他们还需要处理很多请求。我猜他们也关心交通。编辑:(好的,他们在应用引擎 api 中为该 api 功能使用 xmpp 基础设施,所以我猜它在 gcm 中会相似)

感谢您的意见。

4

0 回答 0