您有第三个选项:
3)遵循发布 - 订阅模式。
要实现此目的,您可以使用系统,如Amazon Simple Notification Service (SNS)。首先,您需要设置一个平台应用程序,其中包含您的API密钥(适用于Android)或私钥和APNS证书(适用于iOS)。
当用户第一次启动您的应用程序时,应用程序会要求用户授权推送通知访问,联系您的服务器并发送令牌(用于在SNS平台应用程序上注册端点)。
这使您可以将推送通知发送到在用户设备上运行的应用程序(可以静默处理,或显示为有新数据可用的实时通知)。
然后,您可以为每个团队设置主题,即给定用户可以选择订阅。当用户选择一个团队时,应用程序向您的服务器发送一个请求以订阅该主题,然后您使用他们的API转发给AWS。如果用户想要取消订阅某个主题,则会再次将此请求转发给AWS。
这允许您将每个团队的更新发送到适当的主题,并且只将这些信息分发给实时订阅,可扩展和实时的用户。您的服务器只需要一次ping该主题,AWS将处理交付给每个用户。
当然,您需要实现逻辑来处理通知,订阅,注册等,但它确实允许您的用户实时接收更新。
查看你的选择:
1)最容易实现的,可能必要谁尚未注册新的安装。您将需要这种方式,所以我建议您最初实施此方法。您的服务器将承受与用户成比例的负载,所以当您扩展(并使用HTTP缓存,如清漆或squid以最小化计算和数据库负载)时,值得考虑选项3)
2)没有必要将这些信息广播给您的用户,但它是有效的发布 - 订阅单个主题(所有用户)。只通知关心的用户会更有效率。
3)这是最具可扩展性的选项,并具有实时性的附加优势。即使他们当时没有使用您的应用程序,您也可以通知用户更新。在发布 - 订阅架构下,我们只能通知与您的信息有关的用户,一旦更新,您可以设置超时值,以防止用户从服务器更新到XX时间。这样,如果更新比您的超时值更频繁,用户将永远不需要击中您的服务器。
感谢您的回复。我会开始赏金,以便我们能够获得更多评论/回复。 – mukeshkumar