2010-11-22 42 views
8

我已經創建了一個Asynchronous version of Rails 3,我想將它與WebSocket實現集成。使用機架和事件機器將WebSockets與Rails集成

我正在使用EventMachine,Ruby 1.9,Fibers和各種em風格的庫,如惡意好文件Ilya Grigorik

我一直在尋找em-websocket作爲WebSocket連接的處理程序,但不確定將其掛鉤到Rails應用程序的最佳方法。

理想的情況下,這會以類似的方式工作,與Express和Socket.io到的Node.js - 傳入的連接應檢測並分派到WebSocket的處理程序或定期Rails堆棧通過HTTP頭指示&等

TL; DR

  • 的WebSocket處理程序插入到現有的Rails應用程序
  • 透明地調度的應用
+1

你可能會考慮把你的問題分解成一系列你想要回答的更具體的項目符號。 – kanaka 2010-11-22 15:58:58

回答

1

傳入的WebSocket請求端點也許嘗試socky?至於現在它是最好的,它很容易集成到Rails(2和3)

+0

酷,看看吧 – 2010-11-23 04:59:28

+0

Socky非常酷,但沒有像Express和Socket.io那樣完全集成到Rails堆棧中。可能能夠將它用作更緊密地纏繞到Rails中的東西的基礎。 – 2010-11-27 11:50:15

2

退房Skinny

您需要使用Thin,但您可以在中途步驟中升級HTTP請求。我在Sinatra應用程序中使用它,但它應該與Rails一樣易於使用。

5

我知道這個問題很老,但希望這個答案可以幫助那些已經從谷歌導向這裏的人。

我正在研究一個滿足原始問題中兩個主要標準的寶石。該gem被稱爲websocket-rails,並且已經從頭開始開發,使得在Rails應用程序中使用WebSocket變得簡單。它終於在一個穩定版本中發佈,但我相信它需要更多的功能。

目前,事件處理是非常基本的。有一個events.rb文件,您可以將客戶端事件映射到類似於routes.rb文件的控制器操作。所有到/websocket的請求都被傳遞到嵌入式WebSocket服務器,而不需要單獨的服務器進程。

該項目更宏大的目標是最終將Rails移動到更傳統的MVC模式,其中客戶端瀏覽器上的事件冒泡到服務器進行處理和更新模型會自動觸發客戶端上的事件以更新呈現該模型的表示。

任何反饋將不勝感激。