2012-01-14 65 views
8

我正在開發一款主要由api暴露給各種移動客戶端(iOS,Android等)的Rails應用程序。應用程序涉及用戶向服務器提交數據(通過api調用),但我想包括的是將數據推送到其他客戶端的能力。一般的概念類似於消息應用程序,我從客戶端向服務器提交消息,接收者從服務器推送消息。從Rails應用程序推送數據到客戶端

我現在唯一知道的方法是不斷地輪詢服務器,但必須有比這更好的技術解決方案。有任何想法嗎?

回答

4

你應該看看http://www.pusher.com

推杆是一種託管API,用於快速,輕鬆且安全地添加可擴展實時功能,網絡和移動應用。

如果您需要自主託管的解決方案,那麼您應該查看slayer gem https://github.com/stevegraham/slanger這是推送客戶端庫的服務器實現。當您覺得您需要託管解決方案時,您只需更改URL。

Slanger是用Ruby編寫的Pusher協議的開源服務器實現。它被設計爲橫向擴展到N個節點,並且不知道用戶連接到哪個Slanger節點,即不需要連接到相同Slanger節點的用戶。多個Slanger節點可以位於負載平衡器後面,無需特殊配置。實質上,它的設計很容易擴展。

+0

謝謝,我一直在尋找,因爲這項目自託管解決方案主要是基於我需要開發我的知識 – Jack 2012-01-14 10:30:23

4

我想看看使用頁面內的WebSocket的推更新。

您可以使用Faye來實現此功能,該功能可以回滾到瀏覽器的長輪詢和其他解決方案,而無需websocket支持。 Faye有一個純粹的ruby實現,所以你可能可以訪問你的模型層。

編輯:

此外,這是一個項目,結合Faye和Rails。這是相當新的,但可能做你想做的。 Faye-Rails

1

我比其他解決方案更喜歡event machine。 faye稍微複雜一些,但是你可以用事件機寫出更復雜的代碼。

您可能要檢查事件機上this peepcode截屏

相關問題