2017-08-31 59 views

回答

0

Ruby on Rails有ActionCable它使用websockets使用發佈/訂閱方法使瀏覽器保持最新狀態。

編輯Faye-websocket是一個websocket的實現,不需要任何框架,只需一個Rack兼容的Web服務器。

根據您的需求,可能有預建的應用程序可用。例如,如果您想要一個帶有可更新的小部件的儀表板,您可以使用Smashing

+0

對不起 - 沒有去軌道上的紅寶石....我想要簡單的例如nodemon for JavaScript – Ruegen

+0

Faye&Smashing是非常棒的推薦,但我不明白他們如何在終端上使用靜態HTML,比如httpd – Ruegen

0

除了馬克的回答,iodine是一個Ruby HTTP和WebSocket的服務器用C寫的

它擁有一個基本的靜態文件服務以及爲WebSocket連接(使用的WebSocket回調對象)的原生支持。

靜態文件服務甚至不需要Ruby應用程序。即:

$ iodine -www ./ 

碘還支持發佈/訂閱(有或沒有的Redis)開箱,移動很多的工作量出紅寶石層和進入C發動機。

雖然當前默認使用的線程和進程數量與計算機上的核心數量(優先於併發性能)相同,但可以在單線程模式下運行碘(由於其設計是平坦的)。

使用Rails時,可以使用碘代替ActionCable,方法是使用中間件(定製的或例如Plezi gem)捕獲WebSocket連接。

作爲作者,我有點偏頗,但我認爲這是一個簡單的解決方案來實現,我的測試表明它的性能顯着提高。

+0

它具有監視能力嗎?所以你不需要刷新瀏覽器? – Ruegen

+0

@呂根 - 我不確定你的意思是「看守者」。如果你指的是一個WebSocket,它允許你在不刷新頁面的情況下更新實時數據 - 是的,這是碘的關注特性。碘也使用ETags進行緩存驗證,所以如果你的意思是「注意文件費用」,你可以這麼說,但瀏覽器仍然需要重新加載頁面才能測試緩存驗證。 – Myst

+0

Guard for rails有一個實時重載gem,允許我在寫入文件更改時自動更新/刷新瀏覽器。我想在httpd中(或類似的工具)。 – Ruegen