0

我们正在开发 iPhone 中的消息传递应用程序。我们在 Rails 中开发的后端。我们计划在 AWS 中上传后端。

我们的应用程序的功能是;• 当用户向其他用户发送消息(图片、视频)时,我们会将附件保存在 Amazon S3 中,并将条目保存在数据库中。• 后端应向接收者发送通知,并在 iPhone 应用程序中显示收到的通知。• 当用户登录iPhone 应用程序时,其他用户需要知道用户的在线/离线状态。• 在应用程序的联系人视图中,用户需要了解联系人的在线/离线状态(状态管理)

我们计划使用 Amazon SNS 从 AWS 后端向 iPhone 应用程序发送通知。SNS 是否支持状态管理(好友在线/离线状态)?有人可以指出任何 SNS iPhone 应用程序开发的例子吗?

问对不起,如果我问的问题太笼统。

4

1 回答 1

1

对于您计划进行的预期用途,SNS 和 SQS 都没有必要的要求,它们没有选择器功能,如果存在,可用于根据某些元数据(例如收件人)过滤消息或发件人,类似于 Java JMS,有关术语 SELECTOR 的更多信息,请查看javadoc javax.jms.Message

此外,还需要一种基于元数据限制用户访问的方法,目前权限仅基于 SNS 和 SQS 单个队列中可用的操作,这还不够精细。

所以我认为理想的解决方案是在 EC2 中实现该服务,以协调所有消息的流和在线状态,使用后端数据库进行长期存储消息存储,以及可选的弹性缓存来为消息和在线提供较低延迟的响应地位。

为了达到更好的可扩展性和减少耦合,还应该考虑使用内部的 SNS 主题来推迟中间缓存和数据库的更新。

还值得记住的是,您可以使用 iPhone 数据库作为服务器上可用消息的本地缓存。

于 2012-08-08T11:17:41.167 回答