2014-07-10 23 views
1

對於初學者,讓我說我真的很喜歡Sails框架與它的藍圖路線和平靜的API。添加視圖,控制器和模型,而不重新啓動帆子

所以,這是我的問題和場景,以更好地瞭解Sails和NodeJS的限制在哪裏。

場景: 我想構建一個模塊化設計的應用程序。核心應用程序將具有一定數量的內置功能(具有元數據標記的媒體目錄/庫,導入和控制該元數據),這些功能將是開源的。那麼我將不得不出售模塊(插件),將增加額外的功能,如媒體流傳輸到網絡一個接口,像YouTube的外部來源流應用等

問題/ S:

  1. 是有可能將這些插件上傳到應用程序並進行配置,而無需重新啓動Sails應用程序?
  2. 如果不是,這是Sails還是NodeJS的限制?

雖然很容易爲目錄創建一個觀察器並重新啓動服務器,但我對此猶豫不決。如果應用程序在生產中,重新啓動應用程序將導致所有套接字和會話被終止,這將導致當前觀看正在流媒體的任何用戶中斷。

我想,我們的目標是擁有一個插件上傳服務(類似saas),它將採用插件包並將插件文件(視圖,控制器和模型)移動到應用程序的各個部分,同時仍然利用Sails的藍圖功能進行路由生成,無需終止任何當前會話/套接字即可獲得良好的用戶體驗。

我該怎麼做呢?

感謝

回答

0

爲什麼你不上傳所有插件和使用帆的政策?

您可以將易讀插件寫入數據庫,如果您想更改,可以簡單地更新數據庫記錄。

在您的Sails-Policy中,您可以在每個請求中選擇數據庫。

+0

我沒有想到這一點......這樣做的問題是,如果一個新的插件開發將需要添加到數據庫和應用程序,這將需要重新啓動要創建的路由。然後,我還需要有一個授權服務來檢查當前啓用的插件是否符合插件激活的許可證。 – Karnith

+0

問你應用程序真正重新啓動的頻率 - 你開發新插件的頻率如何?順便說一句。爲什麼會話在重新啓動節點時終止?使用數據庫進行會話存儲(只需在sails中)比你沒有問題 – mdunisch

+0

好吧,你有權使用用戶會話。但是,終止的是用戶當前正在觀看的視頻流。我打算通過網絡套接字使用ffmpeg作爲轉碼器和視頻會話流。我的擔心是,雖然視頻將在瀏覽器上被部分緩存,但當會話終止或重新啓動時會中斷該套接字,套接字將不會從收到的最後一個數據塊繼續緩衝區。 – Karnith