2012-08-07 89 views
0

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

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

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

问很抱歉如果我问的问题太笼统了。

回答

1

对于您打算使用的预期用途,SNS和SQS都没有必要的要求,它们没有选择器功能,如果存在的话,可用于过滤器根据某些元数据(如收件人或发件人)与Java JMS类似,有关术语SELECTOR外观javadoc javax.jms.Message的更多信息。

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

所以我认为最理想的解决方案是在EC2中实现服务,协调所有消息和在线状态的流动,使用后端数据库进行长期存储消息存储,并选择Elastic Cache来提供较低的延迟响应用于消息和状态。

为了获得更好的可伸缩性并减少耦合,还应考虑使用内部SNS主题推迟中间缓存和数据库的更新。

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

+0

感谢您的回答。所以你的意思是存在管理在AWS中不支持。我是否需要安装任何XMPP服务器来实现AWS中的状态管理? – developerXXX 2012-08-14 17:13:05

+0

是的,您肯定必须安装XMPP服务器才能处理通信,但您仍然可以使用其他AWS服务来提高解决方案的可靠性。例如,您可能希望在应用程序处于后台或关闭状态时为其发送通知,那么您可能必须使用SNS主题来实现通知网关。 – 2012-08-14 19:24:21

+0

感谢您的回复 – developerXXX 2012-08-20 05:37:04