如何同时运行 node 和 django 服务器

时间:2021-05-28 11:31:33

标签: python node.js django web-development-server

我正在制作一个视频聊天应用程序,我将在其中使用来自 npm 的网络套接字,并且我已经在这样的 server.js 文件中编写了与 WebSocket 相关的代码

var webSocketServ = require('ws').Server;


var wss = new webSocketServ({
    port: 8000
})

var users = {};
var otherUser;
wss.on('connection', function (conn) {
    console.log("User connected");

    conn.on('message', function (message) {
        var data;
        .
        .
        .
     and so on

为了管理 URL,我使用了 Django, 所以我的问题是当我使用 python manage.py runserver 时,server.js 没有运行并且应用程序没有连接到服务器,如果我运行“node server.js”应用程序正在连接到服务器,但我无法将 URL 管理为在 Django 代码中

所以我打开了两个终端实例,并在一个终端中运行 node,在另一个终端中运行 python,但我知道这不是正确的方法,并且在托管时效率不高

有没有办法同时运行两个服务器?

1 个答案:

答案 0 :(得分:2)

如果您需要两台服务器看起来运行在同一个端口上,您需要设置一台服务器来将某些请求代理给另一台。 (我建议让 Node.js 服务器使用例如 https://github.com/http-party/node-http-proxy 将所有非 websocket 代理到 Django)。

如果您不需要两个服务器运行在同一个端口上,只需将它们更改为使用不同的端口,在这种情况下,您将在不同的 URL 上访问两个内容。您可以在 Node 应用程序或 Django 的 port: 8000 中更改该 runserver,例如runserver 127.0.0.1:8010(或 0.0.0.0:8010 以在您自己的机器之外公开开发服务器)。