2012-08-07 124 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