几天前我被问到了这个问题.要求是设计一个向用户提供体育内容的移动应用程序(比如足球).该应用程序将允许用户订阅特定团队.根据用户的团队选择,应用程序仅在用户主屏幕上提供与该团队相关的内容.当然,用户可以选择查看所有团队的内容(通过菜单选项).
特别关注的是如何自动刷新用户主屏幕上的内容,还应考虑用户是否(或尚未)订阅特定团队.
对于最后一个问题,我建议遵循2个解决方案:
1)应用程序可以向服务器发送微小的请求,该请求仅包含用户的标识符,用户的团队选择.根据输入请求中的团队选择,服务器将仅返回与团队相关的内容.
2)如果内容量较少且不同团队的数量很少,则广播所有信息并让应用程序进行必要的过滤(当然,与#1相比,效率较低).
在论坛上分享这个以获得其他可能的设计决策.如果这不是正确的论坛,请在评论中回答,我将在适当的论坛发帖.
谢谢
基本上当你想做一个自动刷新系统时,你只有两种方法:
1:客户端定期发送请求。如果满足以下条件就足够了:
这可以通过在数据库服务器端简单地使用一些查询来实现。当然,如果你需要更多的性能,你可以有一些中间层。
2:从服务器推送结果:正确架构有点棘手,但这里有一些优点:
然而,限制更重要:
但是因为需要这种架构解决方案的人比您多:这里是 Javaworld 中最适合您的解决方案:
JMS:Java 消息服务,它是一个面向消息的中间件 (MOM)。
JMS 是一种具有不同实现的规范,我个人会选择 activeMQ,它是 Apache 的一个。这是一个关于此的主题:您使用哪种 JMS 实现?
如果您不/不能使用 JMS,请记住这一点:Messare-Oriented-Middleware。谷歌应该可以帮助你找到你需要的东西。
肯定是选项 1)。
我们在其他行业开发了类似的东西,用户有兴趣获取有关不同资源状态的信息。架构是这样的:
现在,请记住,推送通知不能保证交付(尽管总体交付率相当不错),您可能还想实现某种 http 资源,移动应用程序可以不时轮询以检查是否有一些新闻对于该特定用户(这是可选的)。
| 归档时间: |
|
| 查看次数: |
652 次 |
| 最近记录: |