是否可以使用Django和Node.Js?

时间:2012-12-10 05:10:10

标签: django node.js

我为用户登录和用户管理设置了django后端,以及我的整个模板集,网站访问者使用这些模板来显示html文件。但是,我正在尝试为我的网站添加实时功能,我在Node.Js中找到了一个完美的库,允许两个用户输入文本框并在其屏幕上显示文本。是否有可能合并两个后端?

4 个答案:

答案 0 :(得分:10)

为不同的目的运行多个后端是绝对可能的(有时非常有用)。然而,它会打开一些蠕虫,这取决于您的系统预期会有多严格,谁在您的团队中等等:

  • 状态。您希望在不同的应用服务器之间共享会话状态。最简单的方法是以框架无关的方式存储外部会话状态。我建议在键/值存储中使用JSON对象,您可能会从JSON模式中受益。
  • 域/路由。您需要两个应用服务器都可以使用您的登录cookie,这意味着Apache / Nginx路由的单个域或通过DNS路由的单独子域。由于以下原因,我建议使用单独的子域
  • 的WebSockets。我可能已经过时了,但据我所知,Apache和Nginx都不支持代理websockets,这意味着如果你想使用它,你将牺牲使用http服务器作为app代理的灵活性,而是通过一个直接暴露Node子域。
  • 非指定要求。监控,日志记录,错误通知,构建系统,测试,持续集成/部署,文档等等都需要扩展以支持新类型的组件
  • 技巧。您需要花时间或金钱来支付管理更复杂的应用程序架构所需的技能组合

所以,我的建议是仔细考虑是否需要这个。可能会有很多时间和思想。

更新:实际上有些公司专注于为现有网站添加实时性。我不打算给任何名字命名,但是如果你在主机平台(例如Heroku)的附加市场上寻找“实时”,你就会找到它们。

更新2 :Nginx现在有support for Websockets

答案 1 :(得分:2)

您无法合并它们。您可以通过Reddis等队列系统将消息从Django发送到Node.Js。

答案 2 :(得分:0)

如果您确实想使用两个后端,则可以使用两个后端都支持的数据库。

虽然我不推荐它。

答案 3 :(得分:0)

尝试使用Django,Node.js,Socket.io和Reddis。