我正在制作一个视频聊天应用程序,我将在其中使用来自 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,但我知道这不是正确的方法,并且在托管时效率不高
有没有办法同时运行两个服务器?
答案 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
以在您自己的机器之外公开开发服务器)。