2012-12-10 119 views
7

我有一個爲用戶登錄和用戶管理設置的django後端,以及訪問者用來顯示html文件的整套模板。但是,我正在嘗試向我的網站添加實時功能,並且在Node.Js中找到了一個完美的庫,允許兩個用戶鍵入文本框,並在他們的屏幕上顯示文本。是否有可能合併兩個後端?是否可以使用Django和Node.Js?

回答

9

爲了不同的目的運行多個後端是絕對有可能的(有時非常有用)。然而,它會打開幾罐蠕蟲,具體取決於您的系統預期具有哪種嚴格性,誰在您的團隊中,等等。

  • 狀態。您需要在不同的應用程序服務器之間共享會話狀態。最簡單的方法是以與框架無關的方式存儲外部會話狀態。我建議在鍵/值存儲中使用JSON對象,並且您可能會從JSON模式中受益。
  • 域名/路由。您需要將登錄Cookie提供給兩個應用服務器,這意味着要麼通過Apache/Nginx路由一個域名,要麼通過DNS路由單獨的子域名。我建議單獨的子域由於以下原因
  • Websockets。我可能已經過時了,但據我所知,Apache和Nginx都不支持代理websockets,這意味着如果你想使用它,你將犧牲使用http服務器作爲應用代理的靈活性,而直接通過子域。
  • 非規定要求。諸如監控,日誌記錄,錯誤通知,構建系統,測試,持續集成/部署,文檔等等都需要擴展以支持新型組件
  • 技能。您需要花時間或金錢來獲得管理更復雜的應用程序體系結構所需的技能

因此,我的建議是仔細考慮是否需要此功能。可能需要花費很多時間和思想。

更新:實際上有許多公司在專門爲現有網站添加實時功能。我不打算命名任何名稱,但是如果您在託管平臺的附加市場(例如Heroku)上尋找「實時」,那麼您可以找到它們。

更新2:目前Nginx已經support for Websockets

2

你不能合併它們。您可以通過像Reddis這樣的隊列系統將消息從Django發送到Node.Js。

0

如果您確實想使用兩個後端,您可以使用兩個後端都支持的數據庫。

雖然我不會推薦它。

0

嘗試Django的,Node.js的,Socket.io和Reddis。

相關問題